/* observa.brasil 1.29 — finishing layer, after the feature stylesheets.
   Keep data palettes, graph geometry, exports and the editorial cover intact. */
:root {
  --obs-font-ui: 'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --obs-font-editorial: Newsreader, Georgia, serif;
  --obs-text: #183b3f;
  --obs-text-secondary: #526b61;
  --obs-text-soft: #5e726a;
  --obs-surface: #fffdf7;
  --obs-surface-soft: #edf2e8;
  --obs-border: #cbd7cb;
  --obs-focus: #0c6357;
  --obs-radius-control: 10px;
  --obs-radius-card: 16px;
  --obs-space-1: 4px;
  --obs-space-2: 8px;
  --obs-space-3: 12px;
  --obs-space-4: 16px;
  --obs-space-5: 24px;
  --obs-space-6: 32px;
}

/* Text for navigation and consultation, without styling SVG/chart text. */
.primary-nav a,
.brasil-menu > summary,
.scope-parameters summary,
.profile-toolbar,
.mt-lookup-kinds button,
.brasil-tabs button,
.brasil-rank-kinds button {
  font-family: var(--obs-font-ui);
  font-weight: 600;
  line-height: 1.45;
}
.primary-nav a { font-size: 14px; }
.brasil-menu > summary { font-size: 14px; }
.brasil-menu nav .menu-kicker { font-size: 13px; letter-spacing: .07em; }
.brasil-menu nav a span,
.brasil-menu .menu-archive a { font-size: 13px; line-height: 1.6; }

.money-trail > .mt-heading h1,
.legislature .leg-hero h1,
.comparisons .lab-hero h1,
.accountability .acc-intro h1 {
  font-family: var(--obs-font-editorial) !important;
  font-weight: 500 !important;
  letter-spacing: -.035em;
  line-height: 1.08;
}
.money-trail > .mt-heading h1 { font-size: clamp(34px, 3.8vw, 48px) !important; }
.profile-hero h2 { font-family: var(--obs-font-editorial) !important; font-weight: 500 !important; }
.oc-dialog .oc-hero h2 {
  font-family: var(--obs-font-editorial) !important;
  font-weight: 500 !important;
  font-size: clamp(28px, 3.3vw, 39px) !important;
  line-height: 1.12;
}

.scope-parameters :is(.scope-summary-title, .scope-summary-values, .scope-edit),
.scope-parameters #scope-context,
.scope-parameters #scope-coverage,
.scope-parameters #scope-error {
  font-size: 13px;
  line-height: 1.6;
}
.scope-parameters .scope-summary-values { color: var(--obs-text); font-weight: 600; }
.scope-parameters #scope-context,
.scope-parameters #scope-coverage { color: var(--obs-text-secondary); }
.scope-parameters #scope-context { margin: 8px 3px 16px; }

/* Keep source, scope and role information readable instead of fine print. */
main :is(.mt-kicker, .gn-kicker, .leg-kicker, .brasil-kicker),
main :is(.brasil-section-head, .lab-hero, .lab-section-heading, .acc-intro) > .atlas-kicker,
#elections-content[data-person=true] > .brasil-section-head .atlas-kicker {
  font-size: 13px !important;
  line-height: 1.55;
  letter-spacing: .07em !important;
}
main :is(.mt-status, .mt-coverage, .mt-match-status, .mt-lookup-card small,
  .mt-person-badge, .mt-flow small, .mt-identity small, .mt-filter-panel summary,
  .gn-caption, .gn-match-caption, .gn-viewbar > span, .gn-pending-count,
  .gn-atlas-id, .gn-atlas-id > span, .gn-atlas-location,
  .gn-atlas-money small, .gn-atlas-foot, .gn-atlas-foot b,
  .gn-share-menu button small, .gn-legend, .gn-legend small,
  .gn-list-card > span, .gn-detail dt, .gn-roles span,
  .profile-identity-note, .profile-affiliations, .profile-sources,
  .rank-definition, .brasil-coverage, .brasil-note, .brasil-sources,
  .brasil-money-role, .brasil-money-caution, .brasil-election-ticket,
  .brasil-election-identity p, .brasil-election-person small,
  .brasil-election-window p, .brasil-election-window small,
  .et-caption, .et-map-empty-note, .et-coverage p, .et-coverage > article span,
  .et-person-actions a, .et-person-actions button, .et-person-badges span,
  .lab-caption, .lab-filter-notice, .lab-supplier-source,
  .lab-pending-note, .lab-institutional-note,
  .leg-coverage, .leg-sources, .leg-card-kicker,
  .acc-caption, .acc-result-heading > span, .acc-method small,
  .arc-row-kicker, .arc-source, .dis-doc-preview > span,
  .dis-doc-actions a, .ed-home-note, .ed-curiosity-source,
  .ed-curiosity-kicker, .ed-article-meta, .ed-feed-scope,
  .ed-feed-active, .ed-dossier-note) {
  font-size: 13px !important;
  line-height: 1.6 !important;
}
main :is(.gn-caption, .gn-match-caption, .gn-viewbar > span,
  .gn-pending-count, .gn-atlas-id, .gn-atlas-id > span, .gn-atlas-location,
  .gn-atlas-money small, .gn-atlas-foot, .gn-list-card > span,
  .profile-identity-note, .brasil-coverage, .brasil-note,
  .brasil-sources, .et-caption, .et-coverage p, .et-coverage > article span,
  .lab-caption, .lab-supplier-source, .leg-coverage, .leg-sources,
  .acc-caption, .acc-result-heading > span, .arc-source,
  .ed-home-note, .ed-curiosity-source, .ed-feed-scope, .ed-feed-active) {
  color: var(--obs-text-secondary);
}
main :is(.mt-intro, .contract-lead, .brasil-section-head p:not(.atlas-kicker),
  .lab-hero p:not(.atlas-kicker), .leg-intro p,
  .acc-intro p:not(.atlas-kicker), .profile-hero p,
  .person-card > p, .ed-feed-heading > p:not(.atlas-kicker)) {
  font-size: 15px !important;
  line-height: 1.7 !important;
}
.brasil-election-window { gap: 12px 16px; }

/* The official directory and account summaries use the same readable hierarchy. */
.atlas-intro h1 {
  font-family: var(--obs-font-editorial) !important;
  font-weight: 500 !important;
}
.atlas-intro h1 em { color: var(--br-forest); }
.atlas-edition > a {
  min-height: 36px;
  margin: 6px 0 0 16px;
  font-size: 13px;
  line-height: 1.5;
}
.atlas-edition > a:first-of-type { margin-left: 0; }
main :is(.atlas-statline small, .atlas-statline span,
  .acc-scope, .acc-summary span, .acc-summary small,
  .leg-summary small, .leg-summary span, .leg-section-heading > span,
  .leg-author small, .leg-record-source small, .leg-pagination > span,
  .bancada-preview-empty small, .bancada-reference-party,
  .bancada-photo-note, .lab-coverage-mark, .lab-coverage-ring figcaption span,
  .et-person .atlas-kicker) {
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: var(--obs-text-secondary);
}
.profile-identity-note { color: var(--obs-text-secondary) !important; }
.profile-current-member {
  padding: 16px;
  border: 1px solid var(--obs-border);
  border-radius: 12px;
  background: var(--obs-surface-soft);
}
.atlas-search, .atlas-extra-filters {
  border-color: var(--obs-border);
  background: var(--obs-surface);
}
.bancada-stage { border-color: var(--obs-border); background: var(--obs-surface); }
.bancada-preview { border-color: var(--obs-border); background: var(--obs-surface-soft); }
.bancada-preview-empty h3 { color: var(--obs-text); }
.bancada-house button[aria-pressed=true] {
  background: var(--br-petrol);
  border-color: var(--br-petrol);
  color: #fff;
}
.oc-root .oc-actions > a, .oc-root .oc-actions > button {
  min-height: 44px;
  font-size: 13px !important;
  padding: 11px 14px;
}

/* Consistent controls; scope names prevent accidental changes to graph tools. */
:is(.mt-lookup-form, .mt-filters, .brasil-form, .scope-parameter-form,
  #scope-parameter-form, .people-search, .profile-filters, .rank-filters,
  .contract-filters, .lab-toolbar, .leg-filters form, .acc-form,
  .ed-feed-form, .arc-search, .bancada-filters) {
  min-width: 0;
  gap: 16px;
}
:is(.mt-lookup-form, .mt-filters, .brasil-form, #scope-parameter-form,
  .people-search, .profile-filters, .rank-filters, .contract-filters,
  .lab-toolbar, .leg-filters, .acc-form, .ed-feed-form,
  .arc-search, .bancada-filters) label {
  min-width: 0;
  font-size: 14px !important;
  font-weight: 600;
  line-height: 1.5;
  color: var(--obs-text-secondary);
}
:is(.mt-lookup-form, .mt-filters, .brasil-form, #scope-parameter-form,
  .people-search, .profile-filters, .rank-filters, .contract-filters,
  .lab-toolbar, .leg-filters, .acc-form, .ed-feed-form,
  .arc-search, .bancada-filters) :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]), select) {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  min-height: 48px;
  height: auto;
  padding: 12px 14px;
  border: 1px solid #aebfae;
  border-radius: var(--obs-radius-control);
  background: var(--obs-surface);
  color: var(--obs-text);
  font-family: var(--obs-font-ui);
  font-size: 16px !important;
  line-height: 1.4;
}
:is(.mt-lookup-form, .mt-filters, .brasil-form, #scope-parameter-form,
  .people-search, .profile-filters, .rank-filters, .contract-filters,
  .lab-toolbar, .leg-filters, .acc-form, .ed-feed-form,
  .arc-search, .bancada-filters) button {
  min-height: 48px;
  border-radius: var(--obs-radius-control);
  font-size: 14px;
  line-height: 1.4;
  padding: 12px 18px;
}
:is(.brasil-form, .people-search, .profile-filters, .rank-filters,
  .contract-filters, .bancada-filters) {
  padding: 24px;
  border: 1px solid var(--obs-border);
  border-radius: var(--obs-radius-card);
  background: var(--obs-surface-soft);
}
.mt-lookup-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  padding: 24px;
  border: 1px solid var(--obs-border);
  border-radius: var(--obs-radius-card);
  box-shadow: none;
}
.mt-lookup-form > label { display: block; width: 100%; min-width: 0; }
.mt-lookup-form > button { margin: 0; min-height: 56px; }
.mt-lookup-form input { width: 100%; }
.mt-lookup-kinds { gap: 10px; flex-wrap: wrap; }
.mt-lookup-kinds button { min-height: 44px; font-size: 14px; }
.mt-lookup-results { gap: 16px; }
.mt-lookup-card { border-color: var(--obs-border); border-radius: var(--obs-radius-card); }

/* Borders and spacing follow the existing identity, rather than a second theme. */
:is(.profile-hero, .person-card, .contract-card, .dis-doc-card,
  .brasil-election-identity, .gn-map-panel, .gn-detail) {
  border-color: var(--obs-border);
  border-radius: var(--obs-radius-card);
}
.profile-hero {
  background: #edf2e8;
  padding: 24px;
}
.profile-hero h2 { line-height: 1.15; margin-bottom: 10px; }
.profile-toolbar { gap: 16px; flex-wrap: wrap; }
.profile-toolbar > a, .profile-toolbar > button { min-height: 44px; align-content: center; }
.profile-current { border-color: var(--obs-border); }
.brasil-rank-toolbar { gap: 16px; }
.brasil-rank-kinds { gap: 8px; }
.brasil-rank-value { font-variant-numeric: tabular-nums; }
.brasil-territory-coverage { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; padding: 24px; margin: 0 0 20px; border: 1px solid #c3cec3; border-radius: 16px; background: #e8eee3; }
.brasil-territory-coverage strong { display: block; font-size: 34px; font-weight: 600; margin: 10px 0 12px; color: #153f43; font-variant-numeric: tabular-nums; }
.brasil-territory-coverage strong small { display: block; font-size: 15px !important; font-weight: 400; line-height: 1.55; }
.brasil-territory-coverage meter { width: 100%; height: 12px; accent-color: #1c6261; }
.brasil-territory-coverage p { margin: 0; font-size: 15px !important; line-height: 1.65 !important; }
.brasil-territory-coverage p small { display: block; margin-top: 9px; font-size: 13px !important; color: #506363; }
.brasil-rank-chart-compact { height: 340px; }
@media(max-width:700px) { .brasil-territory-coverage { grid-template-columns: 1fr; gap: 15px; padding: 20px; } }
.gn-atlas-card > strong { font-weight: 600; }
.gn-atlas-card { row-gap: 0; }
.gn-atlas-money, .oc-card-value, .profile-metrics strong,
.brasil-election-kpis strong { font-variant-numeric: tabular-nums; }

/* Reading a company or instrument remains distinct from the graph layout. */
.oc-root :is(.oc-topline > span, .oc-eyebrow, .oc-identifier, .oc-window,
  .oc-role, .oc-metric > small, .oc-metric > span, .oc-summary-note,
  .oc-card-kicker, .oc-card-value small, .oc-card-facts,
  .oc-card-context, .oc-author-list, .oc-source, .oc-source small,
  .oc-pager > span, .oc-method, .oc-sources-list small) {
  font-size: 13px !important;
  line-height: 1.6;
}
.oc-root :is(.oc-identifier, .oc-window, .oc-metric:not(.oc-metric-primary) > small,
  .oc-metric:not(.oc-metric-primary) > span, .oc-summary-note,
  .oc-card-kicker, .oc-card-value small, .oc-card-facts,
  .oc-card-context, .oc-source, .oc-source small, .oc-pager > span,
  .oc-sources-list small) { color: var(--obs-text-secondary); }
.oc-root :is(.oc-card-subtitle, .oc-hero-note, .oc-empty, .oc-error, .oc-method p) {
  font-size: 15px !important;
  line-height: 1.65;
}
.oc-root .oc-tab { min-height: 44px; font-size: 14px !important; padding: 11px 14px; }
.oc-root .oc-pager > button, .oc-root .oc-search button, .oc-back { min-height: 44px; font-size: 14px; }
.oc-root .oc-search input { min-height: 48px; font-size: 16px; }
.oc-card, .oc-metric { border-color: var(--obs-border); border-radius: var(--obs-radius-card); }
.oc-metric-primary { border-color: #173f45; }
.oc-card-value { white-space: normal; overflow-wrap: anywhere; }

/* Keyboard visibility is explicit on controls; no motion is added. */
:is(.primary-nav, .brasil-menu, .scope-parameters, .money-trail,
  .brasil-panorama, .brasil-elections, .profile-toolbar, .profile-filters,
  .accountability, .comparisons, .legislature, .oc-root,
  .ed-feed-form, .arc-search, .rank-filters, .contract-filters)
:is(a, button, input, select, summary):focus-visible {
  outline: 3px solid var(--obs-focus) !important;
  outline-offset: 4px !important;
}

@media (max-width: 900px) {
  .brasil-form { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
  .brasil-form > label:first-child { grid-column: 1 / -1; }
  .brasil-form > button { grid-column: 1 / -1; justify-self: start; }
  .lab-filter-primary, .lab-filter-extra-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .brasil-panorama .brasil-section-head { flex-direction: column; align-items: flex-start; gap: 12px; }
  .brasil-panorama .brasil-section-head h1 { font-size: clamp(36px, 7vw, 46px) !important; }
  .brasil-panorama .brasil-section-head > a { min-height: 36px; font-size: 13px; white-space: normal; }
  .brasil-form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 20px; }
  .brasil-form > button { justify-self: stretch; }
  .mt-lookup-form { grid-template-columns: minmax(0, 1fr); align-items: stretch; padding: 20px; }
  .mt-lookup-form > label { width: 100%; }
  .mt-lookup-form > button { justify-self: stretch; min-height: 48px; }
  .scope-summary-values { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
  .scope-summary-values span + span { border-left: 0; padding-left: 0; margin-top: 0; }
  .scope-parameters summary { align-items: center; }
  .scope-parameters :is(.scope-summary-title, .scope-summary-values, .scope-edit) { font-size: 13px; }
  .scope-parameters #scope-context { margin-bottom: 14px; }
  .brasil-election-window { align-items: stretch; gap: 10px; }
  .brasil-election-window > label { font-size: 14px !important; }
  .brasil-election-window > select { width: 100%; min-height: 48px; font-size: 16px !important; }
  .brasil-election-window > p { font-size: 13px !important; }
  .brasil-rank-kinds button, .brasil-tabs button { font-size: 14px; min-height: 44px; }
  .brasil-rank-toolbar { align-items: flex-start; gap: 12px; flex-wrap: wrap; }
  .profile-toolbar { flex-direction: column; align-items: flex-start; gap: 12px; }
  .profile-toolbar > button { font-size: 14px; }
  .ed-feed-form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .ed-feed-form > label:first-child { grid-column: 1 / -1; }
  .oc-root { padding: 24px 20px; }
  .oc-root .oc-tabs { gap: 6px; }
  .oc-root .oc-tab { font-size: 13px !important; padding: 10px 12px; }
}
/* The comparison header is dark: its overline must remain light. */
.lab-hero .atlas-kicker { color: #c1d6cc !important; }

/* A single-column fact panel applies to the whole compact range, including 609px. */
@media (max-width: 760px) {
  body[data-view=inicio] .dis-editorial-welcome { display: block; }
  body[data-view=inicio] #discovery-content .dis-editorial-welcome .brasil-hero-aside {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    align-items: start;
    padding: 20px 0 0;
    margin-top: 24px;
    border-left: 0;
    border-top: 1px solid #ffffff30;
  }
  body[data-view=inicio] .dis-editorial-welcome .dis-hero-congress {
    display: block;
    grid-column: 1;
    grid-row: auto;
    min-width: 0;
    max-width: none;
    width: 100%;
    margin: 0;
    padding-top: 18px;
    border-top: 1px solid #ffffff22;
  }
  body[data-view=inicio] .dis-editorial-welcome .brasil-congress-counts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin: 12px 0 0;
  }
  body[data-view=inicio] .dis-editorial-welcome .brasil-congress-counts > span { min-width: 0; }
  body[data-view=inicio] .dis-editorial-welcome .brasil-congress-counts strong {
    font-size: 32px;
    line-height: 1.2;
  }
  body[data-view=inicio] .dis-editorial-welcome .brasil-congress-counts small {
    max-width: none;
    font-size: 13px !important;
    line-height: 1.5;
  }
  body[data-view=inicio] .dis-editorial-welcome .dis-hero-fact {
    grid-column: 1;
    grid-row: auto;
    min-width: 0;
    width: 100%;
    max-width: none;
    padding-top: 0;
    border-top: 0;
  }
  body[data-view=inicio] .dis-editorial-welcome .dis-hero-fact > span,
  body[data-view=inicio] .dis-editorial-welcome .dis-hero-fact small,
  body[data-view=inicio] .dis-editorial-welcome .dis-hero-congress > span {
    display: block;
    width: 100%;
    max-width: none;
    font-size: 13px !important;
    line-height: 1.6;
  }
  #discovery-content .dis-editorial-welcome .dis-hero-fact small br {
    display: revert;
  }
}
@media (max-width: 600px) {
  .lab-filter-primary, .lab-filter-extra-grid,
  .acc-primary-filters, .leg-filters form,
  .people-search, .profile-filters { grid-template-columns: minmax(0, 1fr); }
  .profile-filters > label, .profile-filter-actions { grid-column: 1; }
  .profile-hero { padding: 20px; }
  .mt-lookup-kinds button { flex: 1 1 auto; }
  .gn-atlas-grid { gap: 16px; }
  .gn-atlas-card > strong { min-height: 0; }
  .oc-dialog { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); border-radius: 18px; }
  .oc-metrics { gap: 12px; }
  .oc-card-heading { flex-wrap: wrap; gap: 12px; }
  .oc-card-value { text-align: left; }
}
@media (max-width: 440px) {
  .brasil-form, .ed-feed-form { grid-template-columns: minmax(0, 1fr); }
  .brasil-form > label, .brasil-form > button, .ed-feed-form > label { grid-column: 1; }
  .oc-metrics { grid-template-columns: minmax(0, 1fr); }
  .scope-parameters summary { gap: 10px; }
}

/* Documentary dossiers use the same reading hierarchy as the reverse inspector. */
#dossier-dialog {
  background: var(--obs-surface);
  color: var(--obs-text);
  border-color: var(--obs-border);
  border-radius: 18px;
}
#dossier-dialog h2 {
  font-family: var(--obs-font-editorial) !important;
  font-size: clamp(26px, 3vw, 32px) !important;
  font-weight: 500 !important;
  line-height: 1.2;
  letter-spacing: -.025em;
}
#dossier-dialog :is(.dossier-subtitle, .dis-section-note, .dis-visual-dossier > p,
  .diligence-question, .dossier-dialog details p) {
  font-size: 15px !important;
  line-height: 1.65;
}
#dossier-dialog :is(.dis-journey small, .dis-journey > div > span,
  .dossier-eyebrow, .dossier-fields dt, .dossier-sources small,
  .dis-dossier-suppliers small, .dis-dossier-contracts small) {
  font-size: 13px !important;
  line-height: 1.6;
  color: var(--obs-text-secondary);
}
#dossier-dialog .dis-journey { gap: 16px; }
#dossier-dialog .dis-journey > div {
  background: var(--obs-surface-soft);
  border: 1px solid var(--obs-border);
  border-radius: var(--obs-radius-card);
  padding: 20px;
}
#dossier-dialog .dis-journey > div:last-child {
  background: #173f45;
  border-color: #173f45;
  color: #fffdf7;
}
#dossier-dialog .dis-journey > div:last-child :is(span, small) { color: #e1ede7; }
#dossier-dialog .dis-journey strong {
  font-size: 20px;
  font-weight: 650;
  line-height: 1.45;
  overflow-wrap: anywhere;
  font-variant-numeric: tabular-nums;
}
#dossier-dialog :is(button, a.button) {
  min-height: 44px;
  border-radius: var(--obs-radius-control);
  font-size: 14px;
}

/* Detailed payment rows keep their columns legible in compact windows. */
#pagamentos .table-scroll-hint { display: none; }
#pagamentos .tablewrap { overflow-x: auto; overscroll-behavior-x: contain; }
#pagamentos table { min-width: 960px; }
#pagamentos th { font-size: 13px; line-height: 1.5; color: var(--obs-text-secondary); }
#pagamentos td { font-size: 14px; line-height: 1.55; vertical-align: top; }
#pagamentos td:nth-child(4) { white-space: nowrap; font-variant-numeric: tabular-nums; }
#pagamentos tbody tr:nth-child(even) { background: #f2f5ee; }
#pagamentos tbody tr:hover { background: #e8eee3; }
#pagamentos .tablewrap:focus-visible { outline: 3px solid #0c6357; outline-offset: 4px; }
@media (max-width: 1000px) {
  #pagamentos .table-scroll-hint { display: block; font-size: 13px !important; line-height: 1.5; color: #526b61; margin: 0 0 12px; }
}

/* Primary actions retain contrast over the legacy generic hover rule.
   Secondary clear/share actions keep their own visual hierarchy. */
:is(.mt-lookup-form, .brasil-form) > button:not(:disabled),
.people-search > button[type="submit"]:not(:disabled),
.profile-filter-actions > button[type="submit"]:not(:disabled) {
  background: #183b3f;
  border-color: #183b3f;
  color: #fffdf7;
}
:is(.mt-lookup-form, .brasil-form) > button:not(:disabled):hover,
.people-search > button[type="submit"]:not(:disabled):hover,
.profile-filter-actions > button[type="submit"]:not(:disabled):hover {
  background: #245e59;
  border-color: #245e59;
  color: #fffdf7;
}
:is(.mt-lookup-form, .brasil-form) > button:not(:disabled):focus-visible,
.people-search > button[type="submit"]:not(:disabled):focus-visible,
.profile-filter-actions > button[type="submit"]:not(:disabled):focus-visible {
  outline: 3px solid var(--obs-focus) !important;
  outline-offset: 4px !important;
}
:is(.mt-lookup-form, .brasil-form) > button:disabled,
.people-search > button[type="submit"]:disabled,
.profile-filter-actions > button[type="submit"]:disabled {
  background: #e3e9e1;
  border-color: var(--obs-border);
  color: #526b61;
  opacity: 1;
  cursor: not-allowed;
}

/* Compact identity dialogs keep navigation usable by touch. */
@media (max-width: 760px) {
  #pl-person-dialog .atlas-dialog-close {
    min-height: 44px;
    min-width: 64px;
    font-size: 13px;
  }
  #pl-person-dialog .atlas-dialog-links { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  #pl-person-dialog .atlas-dialog-links > button { grid-column: 1 / -1; }
  #pl-person-dialog .atlas-dialog-links > :is(a, button) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 12px;
    font-size: 13px;
    line-height: 1.4;
    box-sizing: border-box;
  }
}
