.permit-check {
  gap: var(--space-xl);
  max-width: none;
}

.permit-progress {
  margin-block: var(--space-lg) var(--space-xl);
  border-block: var(--rule-hair) solid var(--color-rule);
}

.permit-progress ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0 !important;
  padding: 0 !important;
  list-style: none;
  counter-reset: permit-step;
}

.permit-progress li {
  counter-increment: permit-step;
  display: grid;
  gap: var(--space-2xs);
  min-width: 0;
  padding: var(--space-md) var(--space-sm);
  color: var(--color-muted) !important;
  font-size: var(--text-sm);
  font-weight: 700;
}

.permit-progress li::before {
  color: var(--color-accent-dark);
  content: "0" counter(permit-step);
  font-family: var(--font-display);
  font-size: var(--text-md);
  line-height: 1;
}

.permit-progress li[aria-current="step"] {
  color: var(--color-ink) !important;
  box-shadow: inset 0 calc(-1 * var(--rule-strong)) var(--color-forest);
}

.permit-progress li.is-complete {
  color: var(--color-forest) !important;
}

.permit-form {
  display: grid;
  gap: var(--space-xl);
  padding-block: var(--space-xl);
  border-block: var(--rule-strong) solid var(--color-forest-deep);
}

.permit-form fieldset {
  display: grid;
  gap: var(--space-xl);
  min-inline-size: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.permit-form fieldset[hidden],
.permit-form [hidden],
.permit-result[hidden] {
  display: none !important;
}

.permit-form legend {
  max-width: 22ch;
  padding: 0;
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: clamp(var(--text-xl), 4vw, var(--text-2xl));
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.05;
}

.permit-field,
.permit-form [data-branch],
.permit-form [data-building-standard],
.permit-form [data-building-area] {
  display: grid;
  gap: var(--space-md);
}

.permit-label,
.permit-form > fieldset > label,
.permit-number-row > label,
.permit-select-row > label {
  color: var(--color-ink);
  font-weight: 700;
}

.permit-hint {
  max-width: 60ch !important;
  color: var(--color-ink-2);
}

.permit-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-sm) var(--space-lg);
}

.permit-form :where(.permit-options, .permit-number-row, .permit-select-row) > br {
  display: none;
}

.permit-options--three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.permit-options--last-wide > label:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.permit-options label,
.permit-inline-check {
  display: flex;
  gap: var(--space-sm);
  align-items: flex-start;
  min-height: 100%;
  padding: var(--space-md);
  border-block-end: var(--rule-hair) solid var(--color-rule);
  color: var(--color-ink);
  cursor: pointer;
}

.permit-options label:has(input:checked) {
  border-color: var(--color-forest);
  color: var(--color-forest-deep);
}

.permit-options input,
.permit-inline-check input,
.permit-document-list input {
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  margin-block-start: 0.15rem;
  accent-color: var(--color-forest);
}

.permit-options span {
  display: grid;
  gap: var(--space-2xs);
  min-width: 0;
}

.permit-options small {
  color: var(--color-ink-2);
  font-size: var(--text-sm);
  font-weight: 400;
  line-height: 1.45;
}

.permit-control-help {
  display: block;
  color: var(--color-ink-2);
  font-size: var(--text-sm);
  font-weight: 400;
  line-height: 1.45;
}

.permit-number-row,
.permit-select-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
}

.permit-select-row {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.permit-number-row label,
.permit-select-row label {
  display: grid;
  gap: var(--space-xs);
}

.permit-form :where(input[type="number"], select) {
  width: 100%;
  min-height: 52px;
  padding: var(--space-sm);
  border: var(--rule-hair) solid var(--color-forest);
  border-radius: 0;
  background: var(--color-paper);
  color: var(--color-ink);
  font: inherit;
}

.permit-term-panel {
  display: grid;
  gap: var(--space-md);
  padding: var(--space-lg);
  background: var(--color-paper-2);
}

.permit-term-panel h3 {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  line-height: 1.15;
}

.permit-term-panel dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
}

.permit-term-panel dt {
  font-weight: 700;
}

.permit-term-panel dd {
  margin: var(--space-2xs) 0 0;
  color: var(--color-ink-2);
}

.permit-term-panel--roles {
  margin-block-start: var(--space-md);
}

.permit-form :where(input, select, button):focus-visible,
.permit-result :where(input, a, button):focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 3px;
}

.permit-form :where(input, select)[aria-invalid="true"] {
  border-color: #a32121;
  box-shadow: inset 0 0 0 1px #a32121;
}

.permit-error,
.permit-form-error {
  color: #8b1b1b !important;
  font-weight: 700;
}

.permit-privacy {
  max-width: 58ch !important;
  padding-block: var(--space-lg);
  border-block: var(--rule-hair) solid var(--color-rule);
}

.permit-actions,
.permit-result-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

.permit-actions .button,
.permit-result-actions .button {
  width: auto;
  cursor: pointer;
}

.permit-result {
  display: grid;
  gap: var(--space-2xl);
  margin-block: var(--space-2xl);
  padding-block: var(--space-2xl);
  border-block: var(--space-xs) solid var(--color-accent);
  scroll-margin-top: var(--space-lg);
}

.permit-result > header {
  display: grid;
  gap: var(--space-sm);
}

.permit-result h3 {
  max-width: 20ch;
  font-family: var(--font-display);
  font-size: clamp(var(--text-xl), 5vw, var(--text-3xl));
  letter-spacing: -0.025em;
  line-height: 1.05;
}

.permit-result h4 {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  line-height: 1.15;
}

.permit-result-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-block: var(--rule-hair) solid var(--color-rule);
}

.permit-result-facts > div {
  display: grid;
  gap: var(--space-xs);
  min-width: 0;
  padding: var(--space-lg) var(--space-md);
}

.permit-result-facts > div + div {
  border-inline-start: var(--rule-hair) solid var(--color-rule);
}

.permit-result-facts span {
  color: var(--color-muted);
  font-size: var(--text-sm);
  font-weight: 700;
}

.permit-result-facts strong {
  overflow-wrap: normal;
  color: var(--color-ink);
  font-size: var(--text-md);
}

.permit-result-columns {
  display: grid;
  gap: var(--space-3xl);
}

.permit-result-columns > section,
.permit-warnings,
.permit-data-context {
  display: grid;
  align-content: start;
  gap: var(--space-md);
}

.permit-result :where(ul) {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.permit-result :where(li) {
  max-width: none;
  padding-block: var(--space-md);
  border-block-end: var(--rule-hair) solid var(--color-rule);
  color: var(--color-ink-2);
}

.permit-document-list label {
  display: flex;
  gap: var(--space-sm);
  cursor: pointer;
}

.permit-document-list input:checked + span {
  color: var(--color-muted);
  text-decoration: line-through;
}

.permit-warnings,
.permit-data-context {
  padding-block-start: var(--space-xl);
  border-block-start: var(--rule-strong) solid var(--color-forest-deep);
}

.permit-data-context p {
  max-width: 70ch !important;
}

@media (min-width: 52rem) {
  .permit-result-columns {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  }
}

@media (max-width: 40rem) {
  .permit-options,
  .permit-options--three,
  .permit-number-row,
  .permit-select-row,
  .permit-term-panel dl {
    grid-template-columns: 1fr;
  }

  .permit-options--last-wide > label:last-child:nth-child(odd) {
    grid-column: auto;
  }

  .permit-progress ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .permit-result-facts {
    grid-template-columns: 1fr;
  }

  .permit-result-facts > div + div {
    border-block-start: var(--rule-hair) solid var(--color-rule);
    border-inline-start: 0;
  }

  .permit-actions .button,
  .permit-result-actions .button {
    width: 100%;
  }
}

@media (min-width: 40.01rem) and (max-width: 52rem) {
  .permit-options--three,
  .permit-select-row,
  .permit-term-panel dl {
    grid-template-columns: 1fr;
  }
}

@media print {
  .site-header,
  .guide-hero,
  .guide-jump,
  .permit-check > :not(.permit-result),
  .guide-content > :not(.permit-check),
  .guide-sources,
  .guide-closing,
  .site-footer,
  .permit-result-actions,
  .permit-data-context,
  .permit-document-list input {
    display: none !important;
  }

  .guide-content,
  .permit-check,
  .permit-result {
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
  }

  .permit-document-list input:checked + span {
    color: inherit;
    text-decoration: none;
  }

  .permit-result-facts,
  .permit-result-columns {
    break-inside: avoid;
  }
}
