/*!
 * Diretório Médico — folha de estilo única (v1.1.0)
 * Marca: "D" com cruz vazada + selo verde de conferido. Títulos em Source Serif 4,
 * texto na fonte do aparelho. Sem CSS inline (CSP style-src 'self').
 * Ordem: tokens → base → layout → componentes → páginas → utilitários → modo escuro → impressão.
 */

@font-face {
  font-family: "Source Serif 4";
  src: url("fonts/source-serif-4-600.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* ===== Tokens ===== */
:root {
  --serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;

  --marca: #1E5AA8;          /* Azul carimbo */
  --azul: #1E5AA8;
  --azul-hover: #174A8C;
  --on-azul: #FFFFFF;
  --tinta: #14213D;          /* títulos */
  --texto: #253149;          /* texto corrido */
  --muted: #5B6579;
  --papel: #F5F7FB;          /* fundo */
  --surface: #FFFFFF;
  --nevoa: #E6EEF9;
  --borda: #DCE3EE;
  --borda-forte: #C3CEDF;
  --campo-borda: #7D89A0;
  --campo: #FFFFFF;
  --anel: rgba(30, 90, 168, .28);
  --foco: #1E5AA8;

  --verde: #1F9D60;          /* Verde conferido (selo) */
  --verde-texto: #17703F;
  --verde-bg: #E8F5EE;
  --verde-borda: #B9DFC9;
  --perigo: #B42318;
  --perigo-texto: #A3201A;
  --perigo-bg: #FDECEA;
  --perigo-borda: #F3BDB7;
  --atencao-texto: #7A4A00;
  --atencao-bg: #FFF4DC;
  --atencao-borda: #EED38E;
  --btn-warn: #8A5300;
  --estrela: #B77900;
  --estrela-off: #C9D1DE;
  --trilho: #E3E8F0;
  --favorito: #C2255C;

  --bm-check: #FFFFFF;
  --carimbo-fundo: rgba(255, 255, 255, .86);
  --cta-bg: #14213D;
  --cta-texto: #FFFFFF;
  --cta-btn-bg: #FFFFFF;
  --cta-btn-texto: #1E5AA8;
  --toast-bg: #14213D;
  --toast-texto: #FFFFFF;
  --sombra-ficha: 0 24px 48px -28px rgba(20, 33, 61, .38);
  --sombra-busca: 0 1px 2px rgba(20, 33, 61, .06), 0 12px 32px -16px rgba(20, 33, 61, .22);

  --raio: 14px;
  --raio-sm: 10px;
  --wrap: 1160px;
  --chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B6579' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --check-selo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
  color-scheme: light;
}

/* ===== Base ===== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 16px; }
body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--papel);
  color: var(--texto);
  font: 1rem/1.6 var(--sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
main { flex: 1 0 auto; }
main:focus { outline: none; }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4 {
  font-family: var(--serif);
  font-weight: 600;
  color: var(--tinta);
  line-height: 1.22;
  letter-spacing: -.005em;
  margin: 0 0 .5em;
  text-wrap: balance;
}
h1 { font-size: clamp(1.75rem, 1.35rem + 1.6vw, 2.375rem); }
h2 { font-size: 1.375rem; }
h3 { font-size: 1.0625rem; }
p { margin: 0 0 1em; }
ul, ol { margin: 0 0 1em; }
a { color: var(--azul); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
strong, b { font-weight: 650; }
small { font-size: .8125rem; }
code { font-family: var(--mono); font-size: .875em; background: var(--nevoa); padding: 1px 6px; border-radius: 6px; overflow-wrap: anywhere; }
:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; border-radius: 4px; }
[hidden] { display: none !important; }
::selection { background: var(--nevoa); color: var(--tinta); }

.icon {
  width: 1.15em;
  height: 1.15em;
  display: inline-block;
  vertical-align: -.2em;
  flex: none;
}

.sr-only {
  position: absolute !important;
  inset: 0 auto auto 0;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.skip {
  position: absolute;
  left: -9999px;
  top: 8px;
  z-index: 100;
  padding: 8px 14px;
  border-radius: var(--raio-sm);
  background: var(--azul);
  color: var(--on-azul);
  font-weight: 600;
}
.skip:focus { left: 8px; }

/* ===== Layout ===== */
.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: 16px; }
@media (min-width: 640px) { .wrap { padding-inline: 24px; } }

.section { padding-block: 40px; }
.stack { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.stack > * { margin-top: 0; margin-bottom: 0; }

.grid { display: grid; gap: 0 16px; }
@media (min-width: 640px) {
  .grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grid--addr { grid-template-columns: 150px minmax(0, 1fr) 110px; }
  .span-2 { grid-column: span 2; }
}

.split { display: grid; gap: 16px; }
@media (min-width: 760px) { .split { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.split .panel ul { padding-left: 1.2em; }
.split .panel li { margin-bottom: .3em; }

.page-head { margin-top: 32px; margin-bottom: 20px; }
.page-head h1 { margin-bottom: 6px; }
.page-head p { color: var(--muted); margin: 0; max-width: 72ch; }

/* Painel com menu lateral (área logada e administração) */
.dash { display: grid; gap: 20px; padding-block: 28px 48px; }
@media (min-width: 920px) {
  .dash { grid-template-columns: 232px minmax(0, 1fr); gap: 32px; align-items: start; }
}

.sidenav { position: relative; display: flex; flex-direction: column; gap: 2px; }
.sidenav a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: var(--raio-sm);
  color: var(--tinta);
  text-decoration: none;
  font-weight: 500;
  font-size: .9375rem;
}
.sidenav a .icon { color: var(--muted); }
.sidenav a:hover { background: var(--surface); }
.sidenav a[aria-current="page"] { background: var(--surface); color: var(--azul); box-shadow: inset 3px 0 0 var(--azul); }
.sidenav a[aria-current="page"] .icon { color: var(--azul); }
.sidenav .count { margin-left: auto; }
@media (min-width: 920px) { .sidenav { position: sticky; top: 20px; } }
@media (max-width: 919px) {
  .sidenav {
    flex-direction: row;
    overflow-x: auto;
    gap: 6px;
    margin-inline: -16px;
    padding: 0 16px 6px;
    scrollbar-width: thin;
  }
  .sidenav a { white-space: nowrap; background: var(--surface); border: 1px solid var(--borda); padding: 7px 12px; }
  .sidenav a[aria-current="page"] { box-shadow: none; border-color: var(--azul); }
  .sidenav .count { margin-left: 6px; }
}

/* ===== Cabeçalho ===== */
.site-header { background: var(--surface); border-bottom: 1px solid var(--borda); }
.site-header .wrap { display: flex; align-items: center; gap: 12px; min-height: 68px; }

.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--tinta); text-decoration: none; margin-right: auto; }
.brand:hover { text-decoration: none; }
.brand__mark { width: 38px; height: 38px; flex: none; }
.bm-d { fill: var(--marca); }
.bm-selo { fill: var(--verde); }
.bm-check { stroke: var(--bm-check); }
.brand__text { display: flex; flex-direction: column; line-height: 1.15; }
.brand__name { font-family: var(--serif); font-weight: 600; font-size: 1.25rem; color: var(--tinta); letter-spacing: -.01em; }
.brand__text small { color: var(--muted); font-size: .75rem; margin-top: 2px; }

.nav { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; }
.nav form { margin: 0; display: inline-flex; }
.nav a,
.nav .linklike {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  border-radius: var(--raio-sm);
  color: var(--tinta);
  text-decoration: none;
  font-weight: 500;
  font-size: .9375rem;
}
.nav a:hover, .nav .linklike:hover { background: var(--nevoa); text-decoration: none; }
.nav a[aria-current="page"] { color: var(--azul); box-shadow: inset 0 -2px 0 var(--azul); border-radius: var(--raio-sm) var(--raio-sm) 0 0; }
.nav a.btn { color: var(--on-azul); background: var(--azul); padding: 8px 14px; margin-left: 6px; }
.nav a.btn:hover { background: var(--azul-hover); }
.site-header .nav-toggle { display: none; }

@media (max-width: 919px) {
  .site-header .wrap { flex-wrap: wrap; }
  .brand__text small { display: none; }
  .nav {
    flex-basis: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 6px 0 12px;
    border-top: 1px solid var(--borda);
  }
  .nav a, .nav .linklike { padding: 12px 6px; width: 100%; }
  .nav a[aria-current="page"] { box-shadow: inset 3px 0 0 var(--azul); border-radius: 0; padding-left: 12px; }
  .nav a.btn { margin: 8px 0 0; justify-content: center; }
  .js .site-header .nav-toggle { display: inline-grid; }
  .js .nav { display: none; }
  .js .nav.is-open { display: flex; }
}

.count {
  display: inline-grid;
  place-items: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  margin-left: 4px;
  border-radius: 999px;
  background: var(--azul);
  color: var(--on-azul);
  font-size: .75rem;
  font-weight: 700;
  line-height: 1;
}

/* ===== Rodapé ===== */
.site-footer { margin-top: 56px; padding-block: 40px 48px; background: var(--surface); border-top: 1px solid var(--borda); font-size: .9375rem; }
.site-footer .wrap { display: grid; gap: 28px; }
@media (min-width: 760px) { .site-footer .wrap { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); } }
.site-footer h2 { font-size: 1rem; margin-bottom: 10px; }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.site-footer a { color: var(--texto); }
.site-footer a:hover { color: var(--azul); }
.site-footer p { max-width: 52ch; }
.brand--footer { margin-bottom: 12px; }
.brand--footer .brand__mark { width: 30px; height: 30px; }
.brand--footer .brand__name { font-size: 1.125rem; }
.disclaimer { font-size: .8125rem; color: var(--muted); margin-bottom: 0; }

/* ===== Botões ===== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 18px;
  border: 1px solid transparent;
  border-radius: var(--raio-sm);
  background: var(--azul);
  color: var(--on-azul);
  font: inherit;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease;
}
.btn:hover { background: var(--azul-hover); text-decoration: none; }
.btn--sm { min-height: 36px; padding: 6px 12px; font-size: .875rem; gap: 6px; }
.btn--block { display: flex; width: 100%; }
.btn--ghost { background: var(--surface); color: var(--azul); border-color: var(--borda-forte); }
.btn--ghost:hover { background: var(--nevoa); border-color: var(--azul); }
.btn--ok { background: var(--verde-texto); color: #FFFFFF; }
.btn--ok:hover { background: #125C33; }
.btn--warn { background: var(--btn-warn); color: #FFFFFF; }
.btn--warn:hover { background: #6F4300; }
.btn--danger { background: var(--perigo); color: #FFFFFF; }
.btn--danger:hover { background: #911C13; }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
.btn[disabled]:hover { background: var(--azul); }
.btn--ghost[disabled]:hover { background: var(--surface); border-color: var(--borda-forte); }
.btn--ok[disabled]:hover { background: var(--verde-texto); }
.btn.fav-on { color: var(--favorito); border-color: currentColor; }

.icon-btn {
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid var(--borda-forte);
  border-radius: var(--raio-sm);
  background: var(--surface);
  color: var(--tinta);
  cursor: pointer;
  text-decoration: none;
}
.icon-btn:hover { background: var(--nevoa); border-color: var(--azul); color: var(--azul); }
.icon-btn .icon { width: 20px; height: 20px; }
.icon-btn--danger { color: var(--perigo-texto); }
.icon-btn--danger:hover { color: var(--perigo); border-color: var(--perigo); background: var(--perigo-bg); }
.icon-btn.fav-on { color: var(--favorito); border-color: currentColor; }

.linklike {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--azul);
  font: inherit;
  cursor: pointer;
}
.linklike:hover { text-decoration: underline; }

/* ===== Formulários ===== */
.field { display: grid; gap: 6px; margin-bottom: 16px; min-width: 0; align-content: start; }
label, .label, legend { font-weight: 600; color: var(--tinta); font-size: .9375rem; }
fieldset { border: 0; padding: 0; margin: 0 0 16px; min-width: 0; }
legend { padding: 0; margin-bottom: 8px; }

input[type="text"], input[type="email"], input[type="password"], input[type="search"],
input[type="number"], input[type="date"], input[type="tel"], input[type="url"],
select, textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--campo-borda);
  border-radius: var(--raio-sm);
  background-color: var(--campo);
  color: var(--texto);
  font: inherit;
  line-height: 1.4;
}
textarea { min-height: 112px; resize: vertical; }
select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 38px;
  background-image: var(--chevron);
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 18px;
  cursor: pointer;
}
input::placeholder, textarea::placeholder { color: #8692A6; opacity: 1; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--azul); box-shadow: 0 0 0 3px var(--anel); }
[aria-invalid="true"] { border-color: var(--perigo) !important; }
input[disabled], select[disabled], textarea[disabled] { background-color: var(--papel); color: var(--muted); cursor: not-allowed; }
input[type="file"] { font: inherit; font-size: .9375rem; max-width: 100%; color: var(--texto); }
input[type="file"]::file-selector-button {
  font: inherit;
  font-weight: 600;
  margin-right: 12px;
  padding: 8px 12px;
  border: 1px solid var(--borda-forte);
  border-radius: 8px;
  background: var(--surface);
  color: var(--azul);
  cursor: pointer;
}
input[type="file"][aria-invalid="true"]::file-selector-button { border-color: var(--perigo); }

.field > .btn { justify-self: start; }
.field__hint { margin: 0; font-size: .8125rem; color: var(--muted); line-height: 1.45; }
.field__error { margin: 0; font-size: .875rem; color: var(--perigo-texto); font-weight: 500; }
.field--narrow { max-width: 300px; }
.field--q { min-width: 0; }

.check { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; font-weight: 400; color: var(--texto); cursor: pointer; }
.check input { width: 18px; height: 18px; margin: 3px 0 0; flex: none; accent-color: var(--azul); cursor: pointer; }
.check.small { font-size: .875rem; }
.check.small input { margin-top: 2px; }

.inline-form { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; }
.inline-form form { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; }
.inline-form input[type="text"] { width: auto; flex: 1 1 220px; min-height: 36px; padding-block: 6px; }
.inline-form select { width: auto; min-height: 36px; padding-block: 6px; }

/* ===== Mensagens do sistema ===== */
.alert {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-block: 16px;
  padding: 14px 16px;
  border: 1px solid var(--borda);
  border-radius: 12px;
  background: var(--nevoa);
  color: var(--tinta);
}
.stack > .alert, .panel > .alert:first-child { margin-top: 0; }
.alert > .icon { width: 20px; height: 20px; margin-top: 2px; }
.alert > div { min-width: 0; flex: 1; }
.alert p:last-child, .alert ul:last-child { margin-bottom: 0; }
.alert ul { margin: .25em 0 0; padding-left: 1.2em; }
.alert--info { background: var(--nevoa); border-color: #C6D6EE; }
.alert--info > .icon { color: var(--azul); }
.alert--ok { background: var(--verde-bg); border-color: var(--verde-borda); }
.alert--ok > .icon { color: var(--verde-texto); }
.alert--warning { background: var(--atencao-bg); border-color: var(--atencao-borda); }
.alert--warning > .icon { color: var(--atencao-texto); }
.alert--error { background: var(--perigo-bg); border-color: var(--perigo-borda); }
.alert--error > .icon { color: var(--perigo-texto); }
.verify-bar { align-items: center; flex-wrap: wrap; }
.verify-bar > div { flex: 1 1 260px; }
.verify-bar form { margin: 0; }

.toasts {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 60;
  display: grid;
  gap: 8px;
  max-width: min(420px, calc(100vw - 32px));
}
.toast {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 12px;
  background: var(--toast-bg);
  color: var(--toast-texto);
  box-shadow: 0 12px 32px rgba(20, 33, 61, .28);
  animation: toast-in .25s ease-out both;
  transition: opacity .3s ease, transform .3s ease;
}
.toast .icon { color: #7FE0A8; width: 20px; height: 20px; }
.toast.is-hiding { opacity: 0; transform: translateY(8px); }
@keyframes toast-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* ===== Painéis e blocos ===== */
.panel {
  background: var(--surface);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  padding: 20px;
  min-width: 0;
}
@media (min-width: 640px) { .panel { padding: 24px; } }
.panel > :last-child { margin-bottom: 0; }
.panel h2 { font-size: 1.25rem; }
.panel__head { display: flex; align-items: center; justify-content: space-between; gap: 8px 12px; flex-wrap: wrap; margin-bottom: 14px; }
.panel__head h1, .panel__head h2 { margin: 0; }
.panel__head form { margin: 0; }

.status-line { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; }
.status-line h1 { margin: 0; }

.badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: .8125rem;
  font-weight: 600;
  line-height: 1.5;
  white-space: nowrap;
  vertical-align: middle;
}
.badge .icon { width: 14px; height: 14px; }
.badge--ok { background: #E3F4EA; color: #17663A; }
.badge--aberto { background: var(--nevoa); color: #1A4F94; }
.badge--atencao { background: #FFF1D6; color: var(--atencao-texto); }
.badge--perigo { background: #FDE8E6; color: #A61B10; }
.badge--neutro { background: #EEF1F5; color: #4A5468; }

.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 999px; background: var(--nevoa); color: var(--tinta); font-size: .875rem; font-weight: 500; }
.chip .icon { color: var(--azul); }

.kv { display: grid; grid-template-columns: minmax(110px, max-content) minmax(0, 1fr); gap: 8px 20px; margin: 0; }
.kv dt { color: var(--muted); font-size: .9375rem; }
.kv dd { margin: 0; font-weight: 500; overflow-wrap: anywhere; }
@media (max-width: 479px) {
  .kv { grid-template-columns: 1fr; gap: 0; }
  .kv dt { font-size: .8125rem; margin-top: 8px; }
  .kv dt:first-child { margin-top: 0; }
}

.tabs { position: relative; display: flex; gap: 2px; border-bottom: 1px solid var(--borda); overflow-x: auto; scrollbar-width: thin; }
.tabs a {
  padding: 10px 14px;
  margin-bottom: -1px;
  border-bottom: 2px solid transparent;
  color: var(--muted);
  font-weight: 600;
  font-size: .9375rem;
  text-decoration: none;
  white-space: nowrap;
}
.tabs a:hover { color: var(--tinta); }
.tabs a[aria-current="page"] { color: var(--azul); border-color: var(--azul); }

.empty {
  display: grid;
  justify-items: center;
  gap: 4px;
  padding: 40px 20px;
  text-align: center;
  background: var(--surface);
  border: 1px dashed var(--borda-forte);
  border-radius: var(--raio);
}
.empty > .icon { width: 40px; height: 40px; color: var(--azul); margin-bottom: 8px; }
.empty h2 { font-size: 1.25rem; margin-bottom: 4px; }
.empty p { max-width: 54ch; color: var(--muted); }
.empty--flat { background: none; border: 0; padding: 12px 0 4px; }

.table-wrap { position: relative; overflow-x: auto; border: 1px solid var(--borda); border-radius: 12px; background: var(--surface); }
table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
th, td { padding: 10px 14px; text-align: left; vertical-align: middle; border-bottom: 1px solid var(--borda); }
th { background: var(--papel); color: var(--muted); font-size: .8125rem; font-weight: 600; white-space: nowrap; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover td { background: #FAFBFD; }
td.actions { text-align: right; white-space: nowrap; }
td.actions form { display: inline-block; margin: 0; }
td .small { display: block; }

.timeline { list-style: none; margin: 0; padding: 0 0 0 16px; border-left: 2px solid var(--borda); }
.timeline li { position: relative; margin-bottom: 10px; }
.timeline li:last-child { margin-bottom: 0; }
.timeline li::before { content: ""; position: absolute; left: -22px; top: .55em; width: 10px; height: 10px; border-radius: 50%; background: var(--surface); border: 2px solid var(--borda-forte); }
.timeline .inline-form { margin-top: 6px; }

pre.code {
  margin: 0 0 1em;
  padding: 12px 14px;
  border-radius: var(--raio-sm);
  background: #14213D;
  color: #E6ECF5;
  font: .875rem/1.5 var(--mono);
  white-space: pre-wrap;
  word-break: break-all;
}

.pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; margin-top: 24px; }
.pagination a, .pagination span {
  display: inline-grid;
  place-items: center;
  min-width: 40px;
  height: 40px;
  padding: 0 8px;
  border: 1px solid var(--borda-forte);
  border-radius: var(--raio-sm);
  background: var(--surface);
  color: var(--tinta);
  font-weight: 600;
  text-decoration: none;
}
.pagination a:hover { border-color: var(--azul); color: var(--azul); }
.pagination [aria-current="page"] { background: var(--azul); border-color: var(--azul); color: var(--on-azul); }

/* Avatar em formato de foto de documento */
.avatar {
  display: inline-grid;
  place-items: center;
  flex: none;
  width: 72px;
  height: 72px;
  border-radius: 16px;
  object-fit: cover;
  background: var(--nevoa);
  color: var(--azul);
  font-family: var(--serif);
  font-weight: 600;
  font-size: 1.5rem;
  line-height: 1;
}
.avatar--lg { width: 112px; height: 112px; border-radius: 20px; font-size: 2.25rem; }
.avatar--sm { width: 44px; height: 44px; border-radius: 12px; font-size: 1rem; }

.verificado { display: inline-flex; align-items: center; gap: 5px; color: var(--verde-texto); font-weight: 600; }
.verificado .icon { color: var(--verde); }

/* Estrelas */
.stars { display: inline-flex; gap: 1px; vertical-align: -.15em; }
.stars .icon { width: 1em; height: 1em; color: var(--estrela-off); }
.stars .star--on { color: var(--estrela); }
.stars--lg .icon { width: 22px; height: 22px; }
.rating { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.rating a { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px; color: inherit; text-decoration: none; }
.rating a:hover strong { text-decoration: underline; }

/* ===== Início ===== */
.hero { padding-block: 40px 24px; }
@media (min-width: 960px) { .hero { padding-block: 64px 32px; } }
.hero__grid { display: grid; gap: 48px; align-items: center; }
@media (min-width: 960px) { .hero__grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 56px; } }
.hero h1 { font-size: clamp(2rem, 1.35rem + 2.7vw, 3.125rem); line-height: 1.1; letter-spacing: -.015em; max-width: 22ch; margin-bottom: 16px; }
.hero__lead { font-size: 1.125rem; color: var(--texto); max-width: 58ch; margin-bottom: 24px; }

.searchbox {
  display: grid;
  gap: 12px;
  padding: 14px;
  background: var(--surface);
  border: 1px solid var(--borda);
  border-radius: 16px;
  box-shadow: var(--sombra-busca);
}
.searchbox .field { margin: 0; }
.searchbox .btn { min-height: 46px; }
@media (min-width: 760px) {
  .searchbox { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) auto; align-items: end; }
  .searchbox .field--q { grid-column: 1 / -1; }
}
.panel .searchbox { box-shadow: none; padding: 0; border: 0; }
@media (min-width: 760px) {
  .panel .searchbox { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) 96px auto; }
  .panel .searchbox .field--q { grid-column: auto; }
}

.foco-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.foco-links a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border: 1px solid var(--borda-forte);
  border-radius: 999px;
  background: var(--surface);
  color: var(--tinta);
  font-size: .9375rem;
  font-weight: 500;
  text-decoration: none;
}
.foco-links a .icon { color: var(--azul); }
.foco-links a:hover { border-color: var(--azul); color: var(--azul); }

/* A ficha verificada: o elemento-assinatura da marca */
.registro {
  position: relative;
  justify-self: center;
  width: 100%;
  max-width: 430px;
  padding: 22px 24px 34px;
  background: var(--surface);
  border: 1px solid var(--borda-forte);
  border-top: 6px solid var(--marca);
  border-radius: 6px;
  box-shadow: var(--sombra-ficha);
}
.registro__title { margin: 0 0 6px; padding-bottom: 10px; border-bottom: 1px solid var(--borda); font-family: var(--serif); font-weight: 600; font-size: 1.125rem; color: var(--tinta); }
.registro dl { display: grid; grid-template-columns: auto minmax(0, 1fr); margin: 0; }
.registro dt, .registro dd { padding: 9px 0; border-bottom: 1px dashed var(--borda-forte); }
.registro dt { padding-right: 18px; color: var(--muted); font-size: .875rem; }
.registro dd { margin: 0; color: var(--tinta); font-weight: 600; font-size: .9375rem; }
.registro dl > :nth-last-child(-n+2) { border-bottom: 0; }
.carimbo {
  position: absolute;
  right: -10px;
  bottom: -24px;
  display: grid;
  justify-items: center;
  padding: 8px 16px 6px;
  border: 3px double var(--verde-texto);
  border-radius: 10px;
  background: var(--carimbo-fundo);
  color: var(--verde-texto);
  font-family: var(--serif);
  font-weight: 600;
  font-size: 1.5rem;
  line-height: 1;
  transform: rotate(-7deg);
  animation: carimbar .5s cubic-bezier(.2, .9, .3, 1.25) .45s both;
}
.carimbo small { margin-top: 4px; font-family: var(--sans); font-size: .6875rem; font-weight: 600; letter-spacing: .02em; }
@keyframes carimbar {
  0% { opacity: 0; transform: rotate(-7deg) scale(1.7); }
  55% { opacity: 1; transform: rotate(-7deg) scale(.94); }
  100% { opacity: 1; transform: rotate(-7deg) scale(1); }
}

.stats { display: flex; flex-wrap: wrap; gap: 12px 36px; margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--borda); color: var(--muted); }
.stats strong { font-family: var(--serif); font-size: 1.5rem; color: var(--tinta); margin-right: 4px; }

/* O que conferimos: uma linha de formulário com marcas de conferido */
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; background: var(--borda); border: 1px solid var(--borda); border-radius: var(--raio); overflow: hidden; }
.steps li { background: var(--surface); padding: 20px 20px 22px; }
.steps h3 { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; }
.steps h3::before {
  content: "";
  flex: none;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--verde) var(--check-selo) center / 15px no-repeat;
}
.steps p { margin: 0; color: var(--muted); font-size: .9375rem; }
@media (min-width: 640px) { .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) {
  .steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .prose .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.cta-band {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 32px;
  padding: 28px;
  border-radius: 16px;
  background: var(--cta-bg);
  color: var(--cta-texto);
}
@media (min-width: 760px) { .cta-band { padding: 36px 40px; } }
.cta-band h2 { color: inherit; margin-bottom: 6px; }
.cta-band p { margin: 0; max-width: 62ch; opacity: .88; }
.cta-band .btn { background: var(--cta-btn-bg); color: var(--cta-btn-texto); }
.cta-band .btn:hover { background: var(--nevoa); }

/* ===== Busca ===== */
.layout-search { display: grid; gap: 20px; padding-bottom: 48px; }
@media (min-width: 960px) {
  .layout-search { grid-template-columns: 288px minmax(0, 1fr); gap: 28px; align-items: start; }
  .filtros { position: sticky; top: 16px; }
  .filtros > summary { display: none; }
}
.filtros > summary { list-style: none; margin-bottom: 0; }
.filtros > summary::-webkit-details-marker { display: none; }
.filtros[open] > summary { margin-bottom: 12px; }
.filters { padding: 18px; }
.filters .field { margin-bottom: 12px; }
.filters .check { margin-block: 4px 16px; }
.results-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 12px; }
.result-count { margin: 0; font-weight: 600; color: var(--tinta); }
.sort-form { display: flex; align-items: center; gap: 8px; margin: 0; }
.sort-form label { font-weight: 500; color: var(--muted); }
.sort-form select { width: auto; min-height: 40px; padding-block: 6px; }

.results { display: grid; gap: 12px; }
.pcard {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 16px;
  align-items: start;
  padding: 16px;
  background: var(--surface);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
}
.pcard__name { margin: 0 0 2px; font-size: 1.1875rem; }
.pcard__name a { color: var(--tinta); text-decoration: none; }
.pcard__name a:hover { color: var(--azul); text-decoration: underline; }
.pcard__reg { margin: 0; color: var(--muted); font-size: .9375rem; }
.pcard__esp { margin: 6px 0 0; font-size: .9375rem; }
.pcard__meta { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 10px; color: var(--muted); font-size: .875rem; }
.pcard__meta > span { display: inline-flex; align-items: center; gap: 5px; }
.pcard__meta .rating strong { color: var(--tinta); }
.pcard__actions { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.pcard__actions form { margin: 0; }
@media (max-width: 599px) {
  .pcard { grid-template-columns: 56px minmax(0, 1fr); gap: 12px; }
  .pcard .avatar { width: 56px; height: 56px; font-size: 1.2rem; border-radius: 14px; }
  .pcard__actions { grid-column: 1 / -1; flex-direction: row; justify-content: flex-end; }
}

/* ===== Perfil público ===== */
.profile { display: grid; gap: 20px; padding-block: 28px 0; }
@media (min-width: 960px) {
  .profile { grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; align-items: start; }
  .jump { display: none; }
}
.profile__head { display: flex; align-items: flex-start; gap: 20px; }
.profile__head h1 { margin-bottom: 4px; }
.profile__head .field { flex: 1; margin: 0; }
.profile__reg { margin: 0 0 4px; color: var(--muted); }
@media (max-width: 479px) {
  .profile__head { flex-direction: column; gap: 14px; }
  .profile__head .avatar--lg { width: 88px; height: 88px; font-size: 1.75rem; }
}

.esp-list { list-style: none; margin: 0; padding: 0; }
.esp-list li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 12px; padding: 10px 0; border-bottom: 1px solid var(--borda); }
.esp-list li:first-child { padding-top: 0; }
.esp-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.esp-list li > span:first-child { font-weight: 600; color: var(--tinta); }

.loc { padding: 14px 0; border-bottom: 1px solid var(--borda); }
.loc:first-of-type { padding-top: 0; }
.loc:last-of-type { border-bottom: 0; padding-bottom: 0; }
.loc h3 { margin-bottom: 4px; }
.loc a { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-weight: 500; }

.contact-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.contact-list a { display: flex; align-items: center; gap: 10px; padding: 8px 0; font-weight: 500; overflow-wrap: anywhere; }

.seal { padding: 20px; border: 1px solid var(--verde-borda); border-radius: var(--raio); background: var(--verde-bg); }
.seal h2 { display: flex; align-items: center; gap: 8px; font-size: 1.125rem; color: var(--verde-texto); }
.seal p { font-size: .9375rem; }

.report summary { display: flex; align-items: center; gap: 8px; color: var(--muted); font-weight: 600; cursor: pointer; list-style: none; }
.report summary::-webkit-details-marker { display: none; }
.report summary:hover, .report[open] summary { color: var(--tinta); }
.report.panel { padding-block: 16px; }

/* Resumo das avaliações */
.rating-summary {
  display: grid;
  gap: 16px 28px;
  align-items: center;
  margin-bottom: 8px;
  padding: 16px 20px;
  border-radius: 12px;
  background: var(--papel);
}
@media (min-width: 560px) { .rating-summary { grid-template-columns: auto minmax(0, 1fr); } }
.rating-summary__big { display: grid; justify-items: center; gap: 6px; }
.rating-summary__big strong { font-family: var(--serif); font-size: 3rem; line-height: 1; color: var(--tinta); }
.dist { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 6px 10px; margin: 0; }
.dist dt { color: var(--muted); font-size: .875rem; font-weight: 600; }
.dist dd { display: flex; align-items: center; gap: 10px; margin: 0; }
.dist dd .small { min-width: 2ch; text-align: right; }
.bar { flex: 1; height: 8px; border-radius: 999px; background: var(--trilho); overflow: hidden; }
.bar__fill { display: block; height: 100%; border-radius: inherit; background: var(--estrela); }
.w0 { width: 0; } .w5 { width: 5%; } .w10 { width: 10%; } .w15 { width: 15%; } .w20 { width: 20%; }
.w25 { width: 25%; } .w30 { width: 30%; } .w35 { width: 35%; } .w40 { width: 40%; } .w45 { width: 45%; }
.w50 { width: 50%; } .w55 { width: 55%; } .w60 { width: 60%; } .w65 { width: 65%; } .w70 { width: 70%; }
.w75 { width: 75%; } .w80 { width: 80%; } .w85 { width: 85%; } .w90 { width: 90%; } .w95 { width: 95%; }
.w100 { width: 100%; }

.review-cta { padding: 14px 0 16px; border-bottom: 1px solid var(--borda); }
.review-cta .icon { color: var(--azul); }
.reviews { list-style: none; margin: 0; padding: 0; }
.review { padding: 16px 0; border-bottom: 1px solid var(--borda); }
.review:last-child { border-bottom: 0; padding-bottom: 0; }
.reviews .review.panel { margin-bottom: 12px; padding: 20px; border: 1px solid var(--borda); }
.reviews .review.panel:last-child { margin-bottom: 0; }
.review__head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-bottom: 8px; }
.review__text { margin: 0 0 8px; overflow-wrap: anywhere; }
.review__reply {
  margin-top: 10px;
  padding: 12px 14px;
  border-left: 3px solid var(--azul);
  border-radius: 0 var(--raio-sm) var(--raio-sm) 0;
  background: var(--papel);
  font-size: .9375rem;
}
.review__reply strong { display: block; margin-bottom: 4px; font-size: .875rem; color: var(--tinta); }
.review form { margin-top: 12px; }
.review details summary { cursor: pointer; color: var(--azul); font-weight: 600; font-size: .9375rem; }

.denuncias { margin: 12px 0; padding: 12px 14px; border: 1px solid var(--atencao-borda); border-radius: var(--raio-sm); background: var(--atencao-bg); }
.denuncias h3 { font-size: 1rem; }
.denuncias .timeline { border-color: var(--atencao-borda); }
.denuncias .timeline li::before { background: var(--atencao-bg); border-color: var(--atencao-borda); }
.moderate { margin-top: 12px; padding-top: 14px; border-top: 1px solid var(--borda); }
.moderate .field { margin-bottom: 10px; }

/* Nota com estrelas no formulário: radios 5→1 exibidos 1→5 */
.star-input { display: inline-flex; flex-direction: row-reverse; gap: 2px; justify-self: start; width: max-content; }
.star-input input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.star-input label { padding: 3px; border-radius: 8px; color: var(--estrela-off); cursor: pointer; transition: color .1s ease, transform .1s ease; }
.star-input label .icon { width: 38px; height: 38px; }
.star-input input:checked ~ label,
.star-input label:hover,
.star-input label:hover ~ label { color: var(--estrela); }
.star-input label:hover { transform: scale(1.08); }
.star-input input:focus-visible + label { outline: 3px solid var(--foco); outline-offset: 1px; }

/* ===== Mensagens ===== */
.inbox { list-style: none; margin: 0; padding: 0; }
.inbox li + li { border-top: 1px solid var(--borda); }
.inbox a { display: flex; gap: 12px; padding: 12px 8px; margin-inline: -8px; border-radius: var(--raio-sm); color: inherit; text-decoration: none; }
.inbox a:hover { background: var(--papel); }
.inbox__body { display: grid; gap: 2px; flex: 1; min-width: 0; }
.inbox__top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.inbox__top strong { color: var(--tinta); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inbox__top .small { flex: none; }
.inbox__preview { color: var(--muted); font-size: .9375rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inbox__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.is-unread .inbox__preview { color: var(--texto); font-weight: 600; }
.is-unread .inbox__top strong::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: var(--azul); vertical-align: .1em; }

.chat { display: flex; flex-direction: column; gap: 18px; }
.chat__head { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px 16px; padding-bottom: 14px; border-bottom: 1px solid var(--borda); }
.chat__title { margin: 0; font-size: 1.375rem; }
.chat__status { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 6px; }
.chat__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.msg { display: flex; flex-direction: column; align-items: flex-start; max-width: min(560px, 88%); }
.msg--mine { align-self: flex-end; align-items: flex-end; }
.msg__bubble { padding: 10px 14px; border: 1px solid var(--borda); border-radius: 16px 16px 16px 4px; background: var(--papel); overflow-wrap: anywhere; }
.msg--mine .msg__bubble { border-color: var(--azul); border-radius: 16px 16px 4px 16px; background: var(--azul); color: var(--on-azul); }
.msg__meta { margin-top: 4px; color: var(--muted); font-size: .75rem; }
.compose { margin: 0; }
.compose .field { margin-bottom: 12px; }
.chat .alert { margin: 0; }
.chat-actions form { margin: 0; }

/* ===== Área logada ===== */
.checklist { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 4px; }
.checklist li { display: flex; align-items: flex-start; gap: 12px; padding: 10px 12px; border-radius: var(--raio-sm); }
.checklist li > .icon { width: 22px; height: 22px; margin-top: 1px; }
.checklist .done > .icon { color: var(--verde); }
.checklist .done a { color: var(--tinta); }
.checklist .todo { background: var(--papel); }
.checklist .todo > .icon { color: var(--azul); }
.checklist a { font-weight: 600; }

.cfm-box { border-top: 3px solid var(--marca); }
.quick { border-color: var(--verde-borda); background: var(--verde-bg); }
.quick h2 { display: flex; align-items: center; gap: 8px; color: var(--verde-texto); }

.doc-type { padding: 16px 0; border-bottom: 1px solid var(--borda); }
.doc-type:first-child { padding-top: 0; }
.doc-type:last-child { padding-bottom: 0; border-bottom: 0; }
.panel > h2 + .doc-type { padding-top: 0; }
.doc-type__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px 12px; }
.doc-type__head h3 { margin-bottom: 2px; }
.doc-type .status-line { margin-top: 8px; }
.files { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px; }
.files li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 8px 12px; border-radius: var(--raio-sm); background: var(--papel); font-size: .9375rem; }
.files li > .icon { color: var(--muted); }
.files .name { font-weight: 600; overflow-wrap: anywhere; }
.files form { margin: 0; }
.files .motivo, .files .inline-form { flex-basis: 100%; }
.motivo { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px; color: var(--perigo-texto); font-size: .875rem; }
.upload-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 12px; }
.upload-row input[type="file"] { flex: 1 1 240px; }

.type-picker { display: grid; gap: 10px; }
@media (min-width: 600px) { .type-picker { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.type-option { position: relative; }
.type-option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.type-option label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  height: 100%;
  padding: 14px;
  border: 1px solid var(--borda-forte);
  border-radius: 12px;
  background: var(--surface);
  font-weight: 400;
  cursor: pointer;
}
.type-option label:hover { border-color: var(--azul); }
.type-option label > .icon { width: 24px; height: 24px; margin-top: 2px; color: var(--azul); }
.type-option strong { display: block; color: var(--tinta); }
.type-option small { display: block; margin-top: 2px; color: var(--muted); line-height: 1.4; }
.type-option input:checked + label { border-color: var(--azul); background: var(--nevoa); box-shadow: inset 0 0 0 1px var(--azul); }
.type-option input:focus-visible + label { outline: 3px solid var(--foco); outline-offset: 2px; }

.auth { max-width: 440px; margin: 32px auto 0; }
.auth--wide { max-width: 720px; }
.auth > .page-head:first-child { margin-top: 0; }
.auth .panel + p { margin-top: 16px; }

/* ===== Administração ===== */
.stat-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 12px; }
.stat {
  display: grid;
  align-content: start;
  gap: 2px;
  padding: 16px;
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  background: var(--surface);
  color: var(--muted);
  text-decoration: none;
}
.stat:hover { border-color: var(--azul); text-decoration: none; }
.stat strong { font-family: var(--serif); font-size: 2rem; line-height: 1.1; color: var(--tinta); }
.stat span { font-size: .875rem; line-height: 1.35; }
.stat--atencao { border-color: var(--atencao-borda); background: var(--atencao-bg); }
.stat--atencao strong { color: var(--atencao-texto); }

.review-grid { display: grid; gap: 20px; }
@media (min-width: 1100px) { .review-grid { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; } }
.decision form { margin-bottom: 18px; }
.decision form:last-child { margin-bottom: 0; }
.decision .field { margin-bottom: 8px; }
.esp-decision { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--borda-forte); }
.esp-decision .label { font-size: .875rem; }

/* Instalador */
.install { width: 100%; max-width: 760px; margin: 40px auto; padding-inline: 16px; }
.install > .brand { margin-bottom: 8px; }
.install .panel { margin-bottom: 20px; }
.req-list { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 6px; }
.req-list li { display: flex; align-items: center; gap: 8px; }
.req-ok { color: var(--verde-texto); }
.req-bad { color: var(--perigo-texto); font-weight: 600; }

/* ===== Páginas de texto ===== */
.prose { max-width: 72ch; }
.wrap.prose { max-width: var(--wrap); }
.wrap.prose > * { max-width: 72ch; }
.prose h2 { margin-top: 1.6em; }
.prose h1 + h2 { margin-top: 1em; }
.prose ul, .prose ol:not(.steps) { padding-left: 1.25em; }
.prose li { margin-bottom: .35em; }
.prose .steps { margin-block: 8px 20px; }
.prose .steps li { margin: 0; }
.wrap.section.prose { padding-top: 32px; }

/* ===== Utilitários (por último, vencem os componentes) ===== */
.muted { color: var(--muted); }
.small { font-size: .875rem; }
.mb-0 { margin-bottom: 0 !important; }
.mb-sm { margin-bottom: 8px !important; }
.mt-sm { margin-top: 8px !important; }
.mt { margin-top: 16px !important; }
.mt-lg { margin-top: 32px !important; }

/* ===== Modo escuro ===== */
@media (prefers-color-scheme: dark) {
  :root {
    --marca: #7FB0F0;
    --azul: #7FB0F0;
    --azul-hover: #A3C7F5;
    --on-azul: #0F1626;
    --tinta: #EEF2F8;
    --texto: #D5DDEA;
    --muted: #A0ABBF;
    --papel: #0F1626;
    --surface: #162036;
    --nevoa: #1D2D4B;
    --borda: #26334D;
    --borda-forte: #3A4A6B;
    --campo-borda: #5A6B8C;
    --campo: #111A2C;
    --anel: rgba(127, 176, 240, .32);
    --foco: #7FB0F0;
    --verde: #5FCF92;
    --verde-texto: #5FCF92;
    --verde-bg: #12301F;
    --verde-borda: #24583A;
    --perigo: #C93A2E;
    --perigo-texto: #FF9C92;
    --perigo-bg: #3A1514;
    --perigo-borda: #6E2620;
    --atencao-texto: #F2C46B;
    --atencao-bg: #33270F;
    --atencao-borda: #6B5420;
    --btn-warn: #9A5F00;
    --estrela: #F2B843;
    --estrela-off: #3A4A6B;
    --trilho: #26334D;
    --favorito: #F27BA4;
    --bm-check: #0F1626;
    --carimbo-fundo: rgba(22, 32, 54, .9);
    --cta-bg: #1D2D4B;
    --cta-texto: #EEF2F8;
    --cta-btn-bg: #7FB0F0;
    --cta-btn-texto: #0F1626;
    --toast-bg: #EEF2F8;
    --toast-texto: #0F1626;
    --sombra-ficha: 0 24px 48px -28px rgba(0, 0, 0, .7);
    --sombra-busca: 0 12px 32px -16px rgba(0, 0, 0, .6);
    --chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A0ABBF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    --check-selo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F1626' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
    color-scheme: dark;
  }
  .btn--ok { background: #17703F; }
  .btn--ok:hover { background: #1C8A4E; }
  .btn--ok[disabled]:hover { background: #17703F; }
  .btn--danger:hover { background: #DB4A3D; }
  .btn--warn:hover { background: #B06D00; }
  .badge--ok { background: #12301F; color: #7FE0A8; }
  .badge--aberto { background: #1D2D4B; color: #A9C9F5; }
  .badge--atencao { background: #33270F; color: #F2C46B; }
  .badge--perigo { background: #3A1514; color: #FF9C92; }
  .badge--neutro { background: #222D42; color: #B9C3D4; }
  .alert--info { border-color: #2F4670; }
  tbody tr:hover td { background: #19243B; }
  .toast .icon { color: #17703F; }
  input::placeholder, textarea::placeholder { color: #7D89A0; }
  pre.code { background: #0B111E; }
  .cta-band .btn:hover { background: #A3C7F5; }
}

/* ===== Movimento reduzido ===== */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* ===== Impressão ===== */
@media print {
  body { background: #FFFFFF; color: #000000; }
  .site-header .nav, .nav-toggle, .site-footer, .sidenav, .toasts, .skip, .btn, .icon-btn, .report, .compose, .filtros, .verify-bar { display: none !important; }
  .panel, .pcard, .registro { box-shadow: none; border-color: #999999; break-inside: avoid; }
  .profile, .dash, .layout-search { display: block; }
  a { color: #000000; }
}
