:root {
  --sb-navy: #073260;
  --sb-blue: #0765bc;
  --sb-blue-hover: #05549e;
  --sb-orange: #ed8a29;
  --sb-ink: #192c42;
  --sb-muted: #526579;
  --sb-line: #dce4ee;
  --sb-canvas: #f4f6f9;
  --sb-surface: #ffffff;
  --sb-green: #226449;
  --sb-green-bg: #eaf6f0;
  --sb-red: #9c3038;
  --sb-red-bg: #fff0f1;
  --sb-focus: #1184d4;
  --sb-radius-sm: 8px;
  --sb-radius-md: 12px;
  --sb-shadow: 0 12px 34px rgba(7, 50, 96, .08);
  --navy: var(--sb-navy);
  --blue: var(--sb-blue);
  --orange: var(--sb-orange);
  --ink: var(--sb-ink);
  --muted: var(--sb-muted);
  --line: var(--sb-line);
  --canvas: var(--sb-canvas);
  --white: var(--sb-surface);
  --green: var(--sb-green);
  --green-bg: var(--sb-green-bg);
  --red: var(--sb-red);
  --red-bg: var(--sb-red-bg);
  --shadow: var(--sb-shadow);
}

.skip-link {
  position: fixed;
  top: -100px;
  left: 12px;
  z-index: 120;
  padding: 12px;
  border: 2px solid var(--sb-blue);
  border-radius: var(--sb-radius-sm);
  background: var(--sb-surface);
  color: var(--sb-navy);
  font-weight: 700;
}

.skip-link:focus {
  top: 12px;
}

.party-grid {
  display: grid;
  gap: 14px;
}

.party-grid .address-row {
  display: grid;
  gap: 14px;
  align-items: start;
  min-width: 0;
}

.party-grid label {
  min-width: 0;
}

.party-grid input,
.party-grid select {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  box-sizing: border-box;
}

.party-row-primary {
  grid-template-columns: minmax(0, 1fr) minmax(145px, .3fr);
}

.party-row-primary.party-row-single {
  grid-template-columns: minmax(0, 1fr);
}

.party-row-address {
  grid-template-columns: minmax(100px, .85fr) minmax(105px, 1fr) minmax(130px, 1.7fr) minmax(66px, .6fr);
}

.party-row-address.party-row-public-address {
  grid-template-columns: minmax(150px, .85fr) minmax(220px, 1.7fr) minmax(90px, .6fr);
}

.party-row-location {
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr) 70px;
}

.party-row-contact {
  grid-template-columns: 64px 132px minmax(0, 1fr);
}

.party-row-contact.party-row-email-only {
  grid-template-columns: minmax(0, 1fr);
}

.cep-input,
.input-action {
  display: grid;
  grid-template-columns: minmax(8rem, 1fr) auto;
  gap: 7px;
  align-items: stretch;
}

.cep-input button,
.input-action button {
  min-width: 44px;
  min-height: 44px;
}

.field-error {
  color: var(--sb-red);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
}

@media (max-width: 640px) {
  .party-row-primary,
  .party-row-address,
  .party-row-address.party-row-public-address,
  .party-row-location,
  .party-row-contact,
  .party-row-contact.party-row-email-only {
    grid-template-columns: minmax(0, 1fr);
  }
}
