/* ==========================================================================
   Dataroom · tema
   Paleta herdada do Observatório (azul-pista, turquesa, menta) e o âmbar da
   sinalização aeroportuária. Tipografia: Archivo, com largura variável — a
   versão estreita, como nas placas de aeroporto, nos títulos e no quadro.
   ========================================================================== */

@font-face {
  font-family: "Archivo";
  src: url("../fonts/archivo-var.woff") format("woff");
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Archivo";
  src: url("../fonts/archivo-italic-var.woff") format("woff");
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-style: italic;
  font-display: swap;
}

:root {
  --dr-pista: #0c2638;
  --dr-pista-2: #10324a;
  --dr-pista-3: #1d4760;
  --dr-ink: #152f40;
  --dr-muted: #5a6f7f;
  --dr-teal: #087f8c;
  --dr-teal-dark: #066570;
  --dr-mint: #64d6c0;
  --dr-amber: #f2b33d;
  --dr-surface: #f3f6f8;
  --dr-line: #dbe4e9;
  --dr-white: #ffffff;
  --dr-font: "Archivo", "Segoe UI", Arial, sans-serif;
  --dr-wide: 1560px;
  --dr-gutter: clamp(16px, 3vw, 40px);
  --dr-focus: 3px solid var(--dr-amber);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--dr-font);
  font-size: 16px;
  line-height: 1.55;
  color: var(--dr-ink);
  background: var(--dr-surface);
  text-rendering: optimizeLegibility;
}
body.dr-has-module { background: var(--dr-white); }
img, svg { max-width: 100%; }
a { color: var(--dr-teal); }
:focus-visible { outline: var(--dr-focus); outline-offset: 2px; }

.dr-visually-hidden {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.dr-skip {
  position: absolute; left: 12px; top: -60px; z-index: 1000;
  background: var(--dr-amber); color: var(--dr-pista); padding: 10px 14px; border-radius: 4px;
  font-weight: 600; text-decoration: none;
}
.dr-skip:focus { top: 12px; }

/* --- Cabeçalho ------------------------------------------------------------ */
.dr-header { background: var(--dr-pista); color: #c9d8e2; position: relative; z-index: 50; }
.dr-header__in {
  max-width: var(--dr-wide); margin: 0 auto; padding: 0 var(--dr-gutter);
  min-height: 76px; display: flex; align-items: center; gap: 28px;
}
.dr-wordmark { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; color: #fff; }
.dr-wordmark__name { font-size: 38px; font-weight: 700; letter-spacing: -1.6px; line-height: 1; font-stretch: 100%; }
.dr-wordmark__name span { font-weight: 330; color: var(--dr-mint); }
.dr-wordmark__tag {
  font-size: 14px; color: #9db6c7; padding-left: 14px; border-left: 1px solid var(--dr-pista-3);
  line-height: 1.2; font-stretch: 87.5%; letter-spacing: .2px;
}
.dr-nav { margin-left: auto; }
.dr-menu, .dr-menu ul { list-style: none; margin: 0; padding: 0; }
.dr-menu { display: flex; align-items: center; gap: 4px; }
.dr-menu > li { position: relative; }
.dr-menu > li > a, .dr-menu__group {
  display: inline-flex; align-items: center; gap: 6px; height: 76px; padding: 0 14px;
  color: #c9d8e2; text-decoration: none; font: inherit; font-size: 15px; font-weight: 500;
  background: none; border: 0; cursor: pointer; border-bottom: 3px solid transparent; border-top: 3px solid transparent;
}
.dr-menu__group::after {
  content: ""; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg); opacity: .7;
}
.dr-menu > li > a:hover, .dr-menu__group:hover { color: #fff; }
.dr-menu > .current-menu-item > a,
.dr-menu > .current-menu-ancestor > a,
.dr-menu > .current-menu-ancestor > .dr-menu__group,
.dr-menu > .current-menu-parent > .dr-menu__group { color: #fff; border-bottom-color: var(--dr-mint); }
.dr-menu .sub-menu {
  position: absolute; top: 100%; left: 0; min-width: 290px; padding: 8px;
  background: var(--dr-pista-2); border: 1px solid var(--dr-pista-3); border-radius: 0 0 8px 8px;
  box-shadow: 0 18px 40px rgba(4, 18, 28, .35); display: none;
}
.dr-menu > li:hover > .sub-menu,
.dr-menu > li:focus-within > .sub-menu,
.dr-menu__group[aria-expanded="true"] + .sub-menu { display: block; }
.dr-menu .sub-menu a {
  display: block; padding: 10px 12px; border-radius: 5px; color: #d6e3eb; text-decoration: none; font-size: 15px;
}
.dr-menu .sub-menu a:hover { background: var(--dr-pista-3); color: #fff; }
.dr-menu .sub-menu .current-menu-item > a { color: var(--dr-mint); }

.dr-nav-toggle {
  display: none; margin-left: auto; align-items: center; gap: 10px; background: none; border: 1px solid var(--dr-pista-3);
  color: #fff; font: inherit; font-size: 14px; padding: 8px 12px; border-radius: 6px; cursor: pointer;
}
.dr-nav-toggle__bars { width: 16px; height: 2px; background: currentColor; position: relative; }
.dr-nav-toggle__bars::before, .dr-nav-toggle__bars::after {
  content: ""; position: absolute; left: 0; width: 16px; height: 2px; background: currentColor;
}
.dr-nav-toggle__bars::before { top: -5px; }
.dr-nav-toggle__bars::after { top: 5px; }

@media (max-width: 900px) {
  .dr-header__in { flex-wrap: wrap; gap: 12px; min-height: 60px; }
  .dr-wordmark__tag { display: none; }
  .dr-wordmark__name { font-size: 32px; }
  .dr-nav-toggle { display: inline-flex; }
  .dr-nav { display: none; width: 100%; margin: 0 0 12px; }
  .dr-nav.is-open { display: block; }
  .dr-menu { flex-direction: column; align-items: stretch; gap: 0; }
  .dr-menu > li > a, .dr-menu__group { height: auto; padding: 12px 4px; width: 100%; border: 0; }
  .dr-menu__group::after { display: none; }
  .dr-menu .sub-menu {
    position: static; display: block; min-width: 0; padding: 0 0 8px 12px; background: none; border: 0; box-shadow: none;
  }
  .dr-menu .sub-menu a { padding: 9px 8px; }
  .dr-menu > .current-menu-ancestor > .dr-menu__group,
  .dr-menu > .current-menu-item > a { border: 0; color: var(--dr-mint); }
}

/* --- Barra da seção (módulos) -------------------------------------------- */
.dr-section { background: var(--dr-white); border-bottom: 1px solid var(--dr-line); }
.dr-section__in {
  max-width: var(--dr-wide); margin: 0 auto; padding: 14px var(--dr-gutter) 0;
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 6px 32px;
}
.dr-section__id { display: flex; flex-direction: column; padding-bottom: 12px; }
.dr-section__group { font-size: 13px; color: var(--dr-muted); }
.dr-section__name {
  font-size: 21px; font-weight: 650; font-stretch: 82%; letter-spacing: -.2px; color: var(--dr-ink); text-decoration: none; line-height: 1.2;
}
.dr-section__name:hover { color: var(--dr-teal); }
.dr-section__tabs { display: flex; flex-wrap: wrap; gap: 2px 22px; }
.dr-section__tab {
  display: inline-block; padding: 8px 0 12px; color: var(--dr-muted); text-decoration: none; font-size: 15px; font-weight: 500;
  border-bottom: 3px solid transparent;
}
.dr-section__tab:hover { color: var(--dr-ink); }
.dr-section__tab.active, .dr-section__tab[aria-current="page"] { color: var(--dr-teal); border-bottom-color: var(--dr-teal); font-weight: 600; }
@media (max-width: 700px) {
  .dr-section__tabs { overflow-x: auto; flex-wrap: nowrap; width: 100%; scrollbar-width: thin; }
  .dr-section__tab { white-space: nowrap; }
}

/* Conteúdo do módulo: cada módulo traz o próprio CSS (com escopo .dr-m-<módulo>). */
.dr-module { font-family: var(--dr-font); color: var(--dr-ink); min-height: 50vh; }
.dr-page-intro { max-width: var(--dr-wide); margin: 0 auto; padding: 24px var(--dr-gutter) 0; }

/* --- Página inicial ------------------------------------------------------ */
.dr-hero { background: var(--dr-pista); color: #d9e6ee; padding: clamp(28px, 4vw, 56px) 0 clamp(40px, 6vw, 80px); }
.dr-hero__in { max-width: var(--dr-wide); margin: 0 auto; padding: 0 var(--dr-gutter); }
.dr-hero__title {
  margin: 0; max-width: 15ch; color: #fff;
  font-size: clamp(40px, 6.4vw, 84px); line-height: .98; font-weight: 640; font-stretch: 72%; letter-spacing: -1.5px;
}
.dr-hero__lede { max-width: 58ch; margin: 22px 0 0; font-size: clamp(16px, 1.5vw, 19px); color: #b6cad7; }
@media (min-width: 1100px) {
  .dr-hero__in { display: grid; grid-template-columns: minmax(0, 1fr); align-items: end; }
  .dr-hero__lede { margin: 0 0 8px; }
  .dr-board { grid-column: 1 / -1; }
}

.dr-board { margin-top: clamp(32px, 5vw, 56px); border-top: 2px solid var(--dr-amber); }
.dr-board__table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.dr-board__table thead th {
  text-align: left; font-size: 13px; font-weight: 500; color: #8fa9ba; padding: 14px 16px 10px 0; border-bottom: 1px solid var(--dr-pista-3);
}
.dr-board__group th {
  text-align: left; padding: 22px 16px 8px 0; font-size: 14px; font-weight: 600; color: var(--dr-amber); font-stretch: 87.5%;
}
.dr-board__row th, .dr-board__row td { padding: 16px 16px 16px 0; border-bottom: 1px solid var(--dr-pista-3); vertical-align: top; }
.dr-board__row { transition: background .15s; }
.dr-board__row:hover { background: var(--dr-pista-2); }
.dr-board__name { text-align: left; width: 30%; }
.dr-board__name a {
  color: #fff; text-decoration: none; font-size: clamp(19px, 1.9vw, 25px); font-weight: 600; font-stretch: 78%; line-height: 1.15; letter-spacing: -.2px;
}
.dr-board__name a::after { content: ""; position: absolute; inset: 0; }
.dr-board__row { position: relative; }
.dr-board__row:hover .dr-board__name a { text-decoration: underline; text-decoration-color: var(--dr-mint); text-underline-offset: 5px; }
.dr-board__what { color: #b6cad7; font-size: 15px; max-width: 54ch; }
.dr-board__until { white-space: nowrap; }
.dr-board__until-item { display: flex; align-items: baseline; gap: 8px; line-height: 1.5; }
.dr-board__until-item small { font-size: 13px; color: #8fa9ba; min-width: 92px; }
.dr-board__until-item b { color: var(--dr-amber); font-weight: 600; font-size: 17px; font-stretch: 87.5%; letter-spacing: .3px; }
.dr-board__until-item--none { color: #6f8a9c; }
.dr-status { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; white-space: nowrap; }
.dr-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.dr-status--ok { color: var(--dr-mint); }
.dr-status--doc { color: #c9d8e2; }
.dr-status--wait { color: var(--dr-amber); }
.dr-board__row:focus-within { outline: var(--dr-focus); outline-offset: -2px; }
.dr-board__name a:focus-visible { outline: none; }

@media (max-width: 860px) {
  .dr-board__table thead { display: none; }
  .dr-board__table, .dr-board__table tbody, .dr-board__row, .dr-board__row th, .dr-board__row td, .dr-board__group, .dr-board__group th { display: block; width: 100%; }
  .dr-board__row { padding: 14px 0; border-bottom: 1px solid var(--dr-pista-3); }
  .dr-board__row th, .dr-board__row td { border: 0; padding: 4px 0; }
  .dr-board__until { white-space: normal; }
}


/* --- Páginas e posts comuns ---------------------------------------------- */
.dr-page { padding: clamp(32px, 5vw, 64px) 0; }
.dr-page__in { max-width: 820px; margin: 0 auto; padding: 0 var(--dr-gutter); }
.dr-page__head h1, .dr-prose h1 { font-size: clamp(32px, 4vw, 48px); line-height: 1.05; font-weight: 640; font-stretch: 78%; letter-spacing: -.6px; margin: 0 0 20px; }
.dr-prose { font-size: 17px; line-height: 1.65; }
.dr-prose h2 { font-size: 26px; font-stretch: 85%; font-weight: 620; margin: 2em 0 .5em; line-height: 1.2; }
.dr-prose h3 { font-size: 20px; font-weight: 620; margin: 1.6em 0 .4em; }
.dr-prose p, .dr-prose ul, .dr-prose ol { max-width: 70ch; }
.dr-prose table { border-collapse: collapse; width: 100%; font-size: 15px; }
.dr-prose th, .dr-prose td { border-bottom: 1px solid var(--dr-line); padding: 8px 10px; text-align: left; }
.dr-list { list-style: none; padding: 0; margin: 0; }
.dr-list__item { padding: 20px 0; border-top: 1px solid var(--dr-line); }
.dr-list__title { font-size: 22px; font-weight: 620; font-stretch: 85%; color: var(--dr-ink); text-decoration: none; }
.dr-list__title:hover { color: var(--dr-teal); }
.dr-list__meta { display: block; color: var(--dr-muted); font-size: 14px; }
.dr-home__extra { max-width: 820px; margin: 0 auto; padding: 48px var(--dr-gutter); }

/* --- Rodapé ---------------------------------------------------------------- */
.dr-footer { background: var(--dr-pista); color: #9db6c7; font-size: 15px; }
.dr-footer__in {
  max-width: var(--dr-wide); margin: 0 auto; padding: 48px var(--dr-gutter) 32px;
  display: grid; grid-template-columns: 1.4fr; grid-auto-columns: 1fr; grid-auto-flow: column; gap: 32px;
}
.dr-footer__brand p { max-width: 32ch; margin: 14px 0 0; }
.dr-footer h2 { font-size: 14px; font-weight: 600; color: #fff; margin: 4px 0 12px; }
.dr-footer ul { list-style: none; margin: 0; padding: 0; }
.dr-footer li { margin: 0 0 8px; }
.dr-footer a { color: #c9d8e2; text-decoration: none; }
.dr-footer a:hover { color: #fff; text-decoration: underline; }
.dr-footer__col p { margin: 0; }
.dr-footer__base {
  max-width: var(--dr-wide); margin: 0 auto; padding: 18px var(--dr-gutter) 28px; border-top: 1px solid var(--dr-pista-3);
  display: flex; justify-content: space-between; gap: 16px; font-size: 14px;
}
.dr-footer__links { display: flex; flex-wrap: wrap; gap: 20px; }

/* Módulos restritos a usuários logados */
.dr-lock {
  display: inline-flex; align-items: center; gap: 5px; margin-left: 8px; padding: 2px 8px 2px 7px; border-radius: 999px;
  font-size: 11.5px; font-weight: 500; font-stretch: 100%; letter-spacing: .1px; vertical-align: 2px; white-space: nowrap;
  color: var(--dr-amber); background: rgba(242, 179, 61, .12); border: 1px solid rgba(242, 179, 61, .35);
}
.dr-lock::before {
  content: ""; width: 9px; height: 10px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 10'%3E%3Cpath d='M2 4V3a2.5 2.5 0 0 1 5 0v1h.5A1.5 1.5 0 0 1 9 5.5v3A1.5 1.5 0 0 1 7.5 10h-6A1.5 1.5 0 0 1 0 8.5v-3A1.5 1.5 0 0 1 1.5 4H2Zm1.2 0h2.6V3a1.3 1.3 0 0 0-2.6 0v1Z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 10'%3E%3Cpath d='M2 4V3a2.5 2.5 0 0 1 5 0v1h.5A1.5 1.5 0 0 1 9 5.5v3A1.5 1.5 0 0 1 7.5 10h-6A1.5 1.5 0 0 1 0 8.5v-3A1.5 1.5 0 0 1 1.5 4H2Zm1.2 0h2.6V3a1.3 1.3 0 0 0-2.6 0v1Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.dr-section .dr-lock { color: #8a5a00; background: #fdf3df; border-color: #f0d49a; vertical-align: 1px; }

@media (max-width: 860px) {
  .dr-footer__in { grid-template-columns: 1fr 1fr; grid-auto-flow: row; }
  .dr-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
  .dr-footer__in { grid-template-columns: 1fr; grid-auto-flow: row; }
  .dr-footer__base { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
