/* Adaptação do domínio Parceiros ao One UI. A base em vendor/one-ui é imutável. */
:root {
  --navy: var(--one-color-nav);
  --blue: var(--one-color-primary);
  --ink: var(--one-color-text);
  --muted: var(--one-color-muted);
  --paper: var(--one-color-background);
  --line: var(--one-color-border);
  --pale: var(--one-color-selected);
  --accent: var(--one-color-primary);
  --white: var(--one-color-surface);
  --soft: var(--one-color-selected);
  font-family: var(--one-font-family);
  color: var(--one-color-text);
  background: var(--one-color-background);
}
body { font: var(--one-font-body)/var(--one-font-line-height) var(--one-font-family); }
button, input, select, textarea { font-family: inherit; }
:focus-visible { outline: 3px solid var(--one-color-focus); outline-offset: 3px; }
.sidebar :focus-visible, .site-footer :focus-visible, .auth-brand :focus-visible { outline-color: var(--one-color-nav-focus); }
.one-skip { z-index: 1100; }
.shell { grid-template-columns: var(--one-size-sidebar) minmax(0, 1fr); }
.workspace { min-width: 0; max-width: none; padding: var(--one-space-xxl); }
.sidebar { padding: var(--one-space-xxl) var(--one-space-lg); }
.sidebar .brand { width: 100%; }
.sidebar nav button { white-space: nowrap; min-height: var(--one-size-target); color: var(--one-color-nav-muted); }
.sidebar nav button.active { color: white; background: var(--one-color-nav-selected); border-color: transparent; border-left: 3px solid var(--one-color-nav-indicator); }
.sidebar footer { overflow-wrap: anywhere; }
.sidebar footer button { min-height: var(--one-size-target); }
.topbar, .prospect-heading, .pane-title, .dialog-actions { flex-wrap: wrap; }
.split > *, .prospect-layout > *, .campaign-entry > *, .one-card { min-width: 0; }
.topbar h1 { font-size: var(--one-font-title); letter-spacing: normal; }
.topbar .eyebrow { color: var(--one-color-primary); }
.panel, .metric, .discovery-card, .form-card { border-color: var(--one-color-border); border-radius: var(--one-radius-card); background: var(--one-color-surface); }
button:not(.contact-row):not([role=option]), .button, .button-link { white-space: nowrap; min-height: var(--one-size-target); border-radius: var(--one-radius-control); font-size: var(--one-font-small); }
.one-button { font-size: var(--one-font-small); }
.one-button.secondary { border-color: var(--one-color-primary); }
.one-button.primary, .button:not(.secondary) { background: var(--one-color-primary); border-color: var(--one-color-primary); color: white; }
.one-button.primary:hover, .button:not(.secondary):hover { background: var(--one-color-primary-hover); }
.one-button.danger, .one-button.primary.danger { background: var(--one-color-danger); border-color: var(--one-color-danger); color: white; }
button:disabled { cursor: not-allowed; }
.badge { white-space: nowrap; border-radius: 999px; font-size: var(--one-font-small); background: var(--one-color-selected); color: var(--one-color-primary); }
.badge.green { background: var(--one-color-success-bg); color: var(--one-color-success); }
.badge.red, .form-feedback, .feedback, #form-message { background: var(--one-color-danger-bg); color: var(--one-color-danger); border-color: var(--one-color-danger); }
.badge.gray { background: var(--one-color-background); color: var(--one-color-muted); }
.status-banner { background: var(--one-color-warning-bg); color: var(--one-color-warning); border-color: currentColor; }
.success-mark, .delivery-receipt { background: var(--one-color-success-bg); color: var(--one-color-success); }
#notice.error { background: var(--one-color-danger); }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea {
  min-height: var(--one-size-target);
  border-color: var(--one-color-input-border);
  border-radius: var(--one-radius-control);
  color: var(--one-color-text);
  font-size: var(--one-font-body);
}
input[aria-invalid=true], select[aria-invalid=true], textarea[aria-invalid=true] { border: 2px solid var(--one-color-danger); }
.check, .checkbox-line { min-height: var(--one-size-target); align-items: flex-start; }
.check input, .checkbox-line input { accent-color: var(--one-color-primary); }
.table-wrap { max-width: 100%; }
dialog { max-height: calc(100dvh - 2rem); overflow: auto; border-radius: var(--one-radius-card); }
.auth { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.auth-form { min-width: 0; }
.auth-brand h2 { font-size: 2.8rem; font-weight: 300; line-height: 1.2; }
.legal-links { font-size: var(--one-font-small); }
.loading { margin: var(--one-space-xxl); }
.site-header, .hero, .audience, .how, .registration, .faq, .site-footer { min-width: 0; }
.site-header .wordmark, .site-footer .wordmark { padding: 0; }
.site-header nav a, .site-footer nav a { display: inline-flex; align-items: center; min-height: var(--one-size-target); }
.hero h1 em { color: var(--one-color-nav); }
.button span { color: inherit; }
.form-intro > p, .field-help, label, label small, .check, .technical-summary p,
.municipality-picker > small, .equipment-confirmation select, .form-progress,
.hero-note, .site-footer p, .site-footer nav { font-size: var(--one-font-small); }
.form-progress { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--one-space-sm); }
.form-progress li { white-space: nowrap; }
.form-progress [aria-current=step] { border-color: var(--one-color-primary); color: var(--one-color-primary); }
.step-actions { flex-wrap: wrap; }
.step-actions .button { margin-left: auto; }
#form-loading { margin-bottom: var(--one-space-lg); }
#pj-fields .cnpj-entry .secondary { min-height: var(--one-size-target); height: auto; font-size: var(--one-font-small); padding: .625rem 1rem; }
#pj-fields .cadastral-location { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) 3.5rem; }
#pj-fields .cadastral-location label { font-size: var(--one-font-small); }
#pj-fields input[readonly] { background: var(--one-color-background); color: var(--one-color-muted); font-size: var(--one-font-body); }
[data-step] h3:focus-visible { outline: 3px solid var(--one-color-focus); outline-offset: 3px; }
.coverage-map-shell.is-expanded { background: var(--one-color-background); }
.coverage-map .leaflet-control a { min-width: var(--one-size-target); min-height: var(--one-size-target); line-height: var(--one-size-target); }
.technical-summary, .support, .company-data dd, .source-url { overflow-wrap: anywhere; }
.faq summary { min-height: var(--one-size-target); }
.site-footer { background: var(--one-color-nav); }
.site-footer p, .site-footer nav { color: var(--one-color-nav-muted); }
@media (max-width: 1100px) {
  .grid { grid-template-columns: minmax(0, 1fr); }
  .list-pane { border-right: 0; border-bottom: 1px solid var(--one-color-border); }
  .contact-list { max-height: 240px; }
  .details { border-left: 0; border-top: 1px solid var(--one-color-border); }
}
@media (max-width: 850px) {
  .shell { display: block; }
  .sidebar { padding: var(--one-space-lg); gap: var(--one-space-lg); }
  .sidebar nav { display: flex; overflow-x: auto; padding: 4px; }
  .sidebar footer { display: flex; align-items: center; flex-wrap: wrap; gap: var(--one-space-md); margin: 0; }
  .sidebar footer br { display: none; }
  .sidebar footer button { margin: 0 0 0 auto; }
  .workspace { padding: var(--one-space-xl) var(--one-space-lg); }
  .auth { grid-template-columns: minmax(0, 1fr); }
  .auth-brand h2 { display: none; }
}
@media (max-width: 600px) {
  .metrics { grid-template-columns: minmax(0, 1fr); }
  .campaign-entry { grid-template-columns: minmax(0, 1fr); }
  .campaign-entry .button { gap: var(--one-space-sm); padding: .625rem .75rem; }
  .form-progress { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .registration { padding: 2.5rem .5rem; }
  .form-intro { padding: 0 .75rem; }
  .form-card { padding: 1.25rem .75rem; }
  .step-actions { flex-direction: column-reverse; align-items: stretch; }
  .step-actions .button { margin: 0; }
  .step-actions .one-button, .submit { padding: .625rem .75rem; font-size: var(--one-font-small); }
  #pj-fields .cnpj-entry { grid-template-columns: minmax(0, 1fr); }
  #pj-fields .cnpj-entry .secondary { justify-self: end; }
  #pj-fields .cadastral-location { grid-template-columns: minmax(0, 1fr) 3.5rem; gap: var(--one-space-sm); }
  #pj-fields .cadastral-location label:first-child { grid-column: 1 / -1; }
  .dialog-actions { flex-direction: column; align-items: stretch; }
  .panel { padding: var(--one-space-lg); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
