/* NEXFC Contábil: tokens, casca e componentes (espec 2.7). Os módulos usam só estes tokens. */

@font-face { font-family: 'DM Sans'; src: url('../fonts/dm-sans.woff2') format('woff2'); font-weight: 300 700; font-display: swap; }
@font-face { font-family: 'Space Grotesk'; src: url('../fonts/space-grotesk.woff2') format('woff2'); font-weight: 300 700; font-display: swap; }

:root {
  --fundo: #EEF3FA;
  --carta: #FFFFFF;
  --carta-2: #F4F7FC;
  --tinta: #0B1B3A;
  --fraca: #33496B;
  --sutil: #5A6F8F;
  --linha: rgba(4, 20, 53, .13);
  --forte: rgba(4, 20, 53, .32);
  --marca: #041435;
  --marca-2: #0A2350;
  --acento: #5B7FA8;
  --acento-claro: #9DBBDD;
  --perigo: #B42318;
  --perigo-bg: #FDECEA;
  --atencao: #8A5300;
  --atencao-bg: #FFF3D6;
  --ok: #146C43;
  --ok-bg: #E2F4EA;
  --info: #2E5687;
  --info-bg: #E5EEF8;
  --raio: 8px;
  --sombra: 0 1px 2px rgba(4, 20, 53, .06), 0 4px 14px rgba(4, 20, 53, .06);
  --fonte-titulo: 'Space Grotesk', 'Segoe UI', system-ui, sans-serif;
  --fonte-texto: 'DM Sans', 'Segoe UI', system-ui, sans-serif;
  --fonte-num: 'DM Sans', 'Segoe UI', system-ui, sans-serif;
  --link: #2E5687;
  --lateral: #041435;
  --lateral-tinta: #E6EEF8;
  --lateral-fraca: #A8BCD8;
  --foco: #5B7FA8;
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --fundo: #041435;
    --carta: #0A2350;
    --carta-2: #0E2C60;
    --tinta: #FFFFFF;
    --fraca: #A8BCD8;
    --sutil: #7B92B2;
    --linha: rgba(157, 187, 221, .18);
    --forte: rgba(157, 187, 221, .42);
    --perigo: #F87171;
    --perigo-bg: rgba(248, 113, 113, .14);
    --atencao: #FBBF24;
    --atencao-bg: rgba(251, 191, 36, .13);
    --ok: #34D399;
    --ok-bg: rgba(52, 211, 153, .13);
    --info: #9DBBDD;
    --info-bg: rgba(157, 187, 221, .14);
    --sombra: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 18px rgba(0, 0, 0, .25);
    --link: #9DBBDD;
    --lateral: #020B1F;
    --foco: #9DBBDD;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --fundo: #041435;
  --carta: #0A2350;
  --carta-2: #0E2C60;
  --tinta: #FFFFFF;
  --fraca: #A8BCD8;
  --sutil: #7B92B2;
  --linha: rgba(157, 187, 221, .18);
  --forte: rgba(157, 187, 221, .42);
  --perigo: #F87171;
  --perigo-bg: rgba(248, 113, 113, .14);
  --atencao: #FBBF24;
  --atencao-bg: rgba(251, 191, 36, .13);
  --ok: #34D399;
  --ok-bg: rgba(52, 211, 153, .13);
  --info: #9DBBDD;
  --info-bg: rgba(157, 187, 221, .14);
  --sombra: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 18px rgba(0, 0, 0, .25);
  --link: #9DBBDD;
  --lateral: #020B1F;
  --foco: #9DBBDD;
  color-scheme: dark;
}

/* ------------------------------------------------------------ base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--fundo);
  color: var(--tinta);
  font-family: var(--fonte-texto);
  font-size: 15px;
  line-height: 1.5;
  overflow-x: hidden;
}
h1, h2, h3, h4 { font-family: var(--fonte-titulo); line-height: 1.25; margin: 0 0 .5em; font-weight: 600; letter-spacing: -.01em; }
h2 { font-size: 1.2rem; }
h3 { font-size: 1.05rem; }
h4 { font-size: .95rem; margin-top: 1em; }
p { margin: 0 0 .75em; }
a { color: var(--link); }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }
button, input, select, textarea { font: inherit; color: inherit; }
ul, ol { padding-left: 1.25rem; }
img, svg { max-width: 100%; }
.nx-oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nx-sutil { color: var(--sutil); font-size: .9em; }
.nx-destaque { font-size: 1.05rem; font-weight: 500; }
.nx-num, .nx-tabela td.nx-num { font-family: var(--fonte-num); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.nx-url { word-break: break-all; }
.nx-sem-js, .nx-abrindo { padding: 24px; color: var(--sutil); }

/* ------------------------------------------------------------ casca */
.nx-pular { position: absolute; left: -9999px; top: 0; z-index: 100; background: var(--carta); padding: 8px 12px; border-radius: var(--raio); }
.nx-pular:focus { left: 8px; top: 8px; }
.nx-faixas { position: sticky; top: 0; z-index: 40; }
.nx-faixa { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; justify-content: center; padding: 8px 16px; font-weight: 600; font-size: .92rem; text-align: center; }
.nx-faixa-perigo { background: var(--perigo); color: #FFFFFF; }
.nx-faixa-exemplo { background: linear-gradient(var(--atencao-bg), var(--atencao-bg)), var(--carta); color: var(--atencao); border-bottom: 1px solid var(--linha); }
.nx-faixa .nx-botao { background: rgba(255, 255, 255, .92); color: var(--marca); border-color: transparent; }
.nx-faixa-inline { padding: 10px 12px; border-radius: var(--raio); margin: 0 0 12px; }
.nx-faixa-inline.nx-faixa-perigo { background: var(--perigo-bg); color: var(--perigo); }
.nx-faixa-inline.nx-faixa-ok { background: var(--ok-bg); color: var(--ok); }
.nx-faixa-inline ul { margin: 6px 0 0; }

.nx-casca { display: grid; grid-template-columns: 232px minmax(0, 1fr); min-height: 100vh; }
.nx-lateral {
  background: var(--lateral);
  color: var(--lateral-tinta);
  position: sticky; top: 0; height: 100vh;
  display: flex; flex-direction: column;
  padding: 18px 12px;
  overflow-y: auto;
}
.nx-marca { display: flex; align-items: baseline; gap: 8px; padding: 4px 10px 18px; font-family: var(--fonte-titulo); }
.nx-marca-nome { font-weight: 700; font-size: 1.3rem; letter-spacing: .04em; color: #FFFFFF; }
.nx-marca-produto { font-weight: 500; color: var(--acento-claro); font-size: 1.05rem; }
.nx-menu { display: flex; flex-direction: column; gap: 2px; }
.nx-menu-item {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 9px 10px; border-radius: var(--raio);
  color: var(--lateral-fraca); text-decoration: none; font-weight: 500;
}
.nx-menu-item:hover { background: rgba(157, 187, 221, .1); color: #FFFFFF; }
.nx-menu-item.nx-ativo { background: rgba(91, 127, 168, .3); color: #FFFFFF; }
.nx-menu-item:focus-visible { outline-color: var(--acento-claro); }
.nx-contador { min-width: 22px; padding: 1px 7px; border-radius: 999px; font-size: .78rem; font-weight: 700; text-align: center; font-variant-numeric: tabular-nums; }
.nx-contador-perigo { background: #F87171; color: #2A0606; }
.nx-contador-atencao { background: #FBBF24; color: #2A1C00; }
.nx-contador-info { background: var(--acento-claro); color: var(--marca); }
.nx-lateral-rodape { margin-top: auto; padding: 12px 10px 0; font-size: .78rem; color: var(--lateral-fraca); }
.nx-cortina { display: none; }

.nx-principal { min-width: 0; display: flex; flex-direction: column; }
.nx-topo {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 12px 24px; background: var(--carta); border-bottom: 1px solid var(--linha);
  position: sticky; top: 0; z-index: 20;
}
.nx-titulo { font-size: 1.25rem; margin: 0; flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nx-topo .nx-abrir-menu { display: none; }
.nx-busca { position: relative; flex: 0 1 340px; min-width: 0; }
.nx-busca input {
  width: 100%; padding: 8px 12px; border: 1px solid var(--linha); border-radius: var(--raio);
  background: var(--carta-2);
}
.nx-busca-resultados {
  position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 30;
  background: var(--carta); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra);
  max-height: 60vh; overflow-y: auto;
}
.nx-busca-item { display: flex; flex-direction: column; padding: 8px 12px; text-decoration: none; color: var(--tinta); border-bottom: 1px solid var(--linha); }
.nx-busca-item span { color: var(--sutil); font-size: .85rem; }
.nx-busca-item:hover, .nx-busca-item:focus { background: var(--carta-2); }
.nx-busca-nada { padding: 10px 12px; margin: 0; color: var(--sutil); }
.nx-quem { border: 1px solid var(--linha); background: var(--carta-2); border-radius: 999px; padding: 6px 12px; cursor: pointer; white-space: nowrap; }
.nx-quem:hover { border-color: var(--forte); }
.nx-vista { padding: 20px 24px 48px; min-width: 0; max-width: 1280px; width: 100%; }
.nx-vista:focus { outline: none; }

/* ------------------------------------------------------------ componentes */
.nx-carta { background: var(--carta); border: 1px solid var(--linha); border-radius: var(--raio); padding: 16px; margin-bottom: 16px; box-shadow: var(--sombra); }
.nx-carta-perigo { border-color: var(--perigo); }
.nx-erro { border-color: var(--perigo); }
.nx-erro h1, .nx-erro h2 { color: var(--perigo); }
.nx-botoes { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.nx-botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-height: 36px; padding: 6px 14px;
  border: 1px solid var(--forte); border-radius: var(--raio);
  background: var(--carta); color: var(--tinta);
  font-weight: 600; text-decoration: none; cursor: pointer; white-space: nowrap;
}
.nx-botao:hover { background: var(--carta-2); }
.nx-botao:disabled { opacity: .5; cursor: not-allowed; }
.nx-botao-forte { background: var(--marca-2); color: #FFFFFF; border-color: var(--marca-2); }
.nx-botao-forte:hover { background: var(--marca); }
.nx-botao-perigo { background: var(--perigo); color: #FFFFFF; border-color: var(--perigo); }
.nx-botao-perigo:hover { background: var(--perigo); filter: brightness(.92); }
.nx-botao-discreto { border-color: transparent; background: transparent; color: var(--link); }
.nx-botao-discreto:hover { background: var(--info-bg); }
.nx-botao-pequeno { min-height: 30px; padding: 3px 10px; font-size: .86rem; }
:root[data-theme="dark"] .nx-botao-forte { background: var(--acento); border-color: var(--acento); color: #041435; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .nx-botao-forte { background: var(--acento); border-color: var(--acento); color: #041435; } }
.nx-arquivo { position: relative; overflow: hidden; }
.nx-arquivo input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.nx-link { color: var(--link); text-decoration: underline; cursor: pointer; display: inline-block; }

.nx-pilula { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: .78rem; font-weight: 600; white-space: nowrap; border: 1px solid transparent; vertical-align: middle; }
.nx-pilula-perigo { background: var(--perigo-bg); color: var(--perigo); }
.nx-pilula-atencao { background: var(--atencao-bg); color: var(--atencao); }
.nx-pilula-ok { background: var(--ok-bg); color: var(--ok); }
.nx-pilula-info { background: var(--info-bg); color: var(--info); }
.nx-pilula-neutro { background: var(--carta-2); color: var(--fraca); border-color: var(--linha); }
.nx-selo { display: inline-block; padding: 0 7px; border-radius: 4px; font-size: .74rem; font-weight: 700; text-transform: lowercase; vertical-align: middle; cursor: help; }
.nx-selo-conferir { background: var(--atencao-bg); color: var(--atencao); border: 1px dashed var(--atencao); }

.nx-vazio { text-align: center; padding: 28px 16px; color: var(--sutil); border: 1px dashed var(--linha); border-radius: var(--raio); background: var(--carta); }
.nx-vazio p { margin-bottom: 12px; }
.nx-carregando { color: var(--sutil); }

.nx-tabela-rolagem { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.nx-tabela { width: 100%; border-collapse: collapse; font-size: .92rem; }
.nx-tabela th { text-align: left; font-weight: 600; color: var(--fraca); font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; padding: 8px 10px; border-bottom: 2px solid var(--linha); white-space: nowrap; }
.nx-tabela td { padding: 8px 10px; border-bottom: 1px solid var(--linha); vertical-align: top; }
.nx-tabela tbody tr:hover { background: var(--carta-2); }

.nx-form { margin: 0; }
.nx-form-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px 16px; }
.nx-form-linha { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin-top: 12px; }
.nx-campo { display: flex; flex-direction: column; gap: 4px; min-width: 0; font-size: .9rem; }
.nx-campo > span { font-weight: 600; color: var(--fraca); }
.nx-campo input, .nx-campo select, .nx-campo textarea {
  width: 100%; min-height: 36px; padding: 6px 10px;
  border: 1px solid var(--forte); border-radius: var(--raio); background: var(--carta);
}
.nx-campo textarea { min-height: 90px; resize: vertical; }
.nx-campo-linha { flex-direction: row; align-items: center; gap: 8px; }
.nx-campo-linha > span { white-space: nowrap; }
.nx-campo-linha select, .nx-campo-linha input { width: auto; }
.nx-escolha-lista { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.nx-escolha { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--linha); border-radius: 999px; cursor: pointer; }
.nx-escolha:has(input:checked) { border-color: var(--acento); background: var(--info-bg); }
.nx-lista-simples { list-style: none; padding: 0; margin: 0 0 12px; }
.nx-lista-simples li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--linha); }
.nx-passos li { margin-bottom: 4px; }
.nx-barra-filtros { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin-bottom: 16px; }

.nx-abas { display: flex; gap: 4px; border-bottom: 1px solid var(--linha); margin-bottom: 16px; overflow-x: auto; }
.nx-aba { padding: 8px 14px; border: 0; background: transparent; border-bottom: 3px solid transparent; color: var(--fraca); font-weight: 600; text-decoration: none; cursor: pointer; white-space: nowrap; }
.nx-aba:hover { color: var(--tinta); }
.nx-aba-ativa { color: var(--tinta); border-bottom-color: var(--acento); }

/* modal */
.nx-modal { border: 0; padding: 0; border-radius: 12px; background: var(--carta); color: var(--tinta); box-shadow: 0 20px 60px rgba(0, 0, 0, .35); width: min(560px, calc(100vw - 24px)); max-height: calc(100vh - 32px); }
.nx-modal::backdrop { background: rgba(4, 20, 53, .55); }
.nx-modal-caixa { display: flex; flex-direction: column; max-height: calc(100vh - 32px); margin: 0; }
.nx-modal-cab { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 14px 16px 6px; }
.nx-modal-cab h2 { margin: 0; font-size: 1.1rem; }
.nx-modal-x { font-size: 1.3rem; min-height: 32px; padding: 0 10px; }
.nx-modal-corpo { padding: 6px 16px 12px; overflow-y: auto; }
.nx-modal-corpo .nx-campo { margin-bottom: 10px; }
.nx-modal-rodape { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--linha); }

/* avisos (toast) */
.nx-avisos { position: fixed; right: 16px; bottom: 16px; z-index: 60; display: flex; flex-direction: column; gap: 8px; max-width: min(420px, calc(100vw - 32px)); }
.nx-aviso { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: var(--raio); background: var(--marca-2); color: #FFFFFF; box-shadow: var(--sombra); font-weight: 500; }
.nx-aviso span { flex: 1 1 auto; }
.nx-aviso-perigo { background: var(--perigo); }
.nx-aviso-atencao { background: #6B4400; }
.nx-aviso .nx-botao { background: rgba(255, 255, 255, .95); color: var(--marca); border-color: transparent; }
.nx-aviso-x { border: 0; background: transparent; color: inherit; font-size: 1.2rem; cursor: pointer; padding: 0 4px; }

/* menu de status */
.nx-menu-status { position: absolute; z-index: 70; min-width: 180px; background: var(--carta); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); padding: 4px; display: flex; flex-direction: column; }
.nx-menu-status-item { text-align: left; border: 0; background: transparent; padding: 8px 10px; border-radius: 6px; cursor: pointer; }
.nx-menu-status-item:hover, .nx-menu-status-item:focus { background: var(--carta-2); }
.nx-ms-perigo { color: var(--perigo); }
.nx-ms-ok { color: var(--ok); }
.nx-menu-status-vazio { padding: 8px 10px; margin: 0; color: var(--sutil); }

/* ------------------------------------------------------------ Hoje */
.nx-hoje-topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.nx-contadores { display: flex; flex-wrap: wrap; gap: 8px; }
.nx-contador-filtro {
  display: inline-flex; align-items: baseline; gap: 8px; padding: 8px 14px; min-height: 40px;
  border-radius: var(--raio); border: 1px solid var(--linha); background: var(--carta); cursor: pointer; font-weight: 600;
}
.nx-cf-n { font-family: var(--fonte-titulo); font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.nx-cf-perigo .nx-cf-n { color: var(--perigo); }
.nx-cf-atencao .nx-cf-n { color: var(--atencao); }
.nx-cf-info .nx-cf-n { color: var(--info); }
.nx-cf-ok .nx-cf-n { color: var(--ok); }
.nx-cf-ativo { border-color: var(--acento); box-shadow: inset 0 0 0 1px var(--acento); background: var(--info-bg); }
.nx-hoje-controles { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.nx-alternar { display: inline-flex; border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
.nx-alt { border: 0; background: var(--carta); padding: 6px 12px; cursor: pointer; font-weight: 600; color: var(--fraca); min-height: 34px; }
.nx-alt + .nx-alt { border-left: 1px solid var(--linha); }
.nx-alt-ativo { background: var(--marca-2); color: #FFFFFF; }
:root[data-theme="dark"] .nx-alt-ativo { background: var(--acento); color: #041435; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .nx-alt-ativo { background: var(--acento); color: #041435; } }
.nx-secao-titulo { font-size: 1rem; margin: 18px 0 8px; }
.nx-escritorio { background: var(--info-bg); border-radius: var(--raio); padding: 4px 12px 8px; margin-bottom: 16px; }
.nx-escritorio .nx-secao-titulo { margin-top: 8px; }
.nx-escritorio .nx-itens { background: transparent; }
.nx-grupo { background: var(--carta); border: 1px solid var(--linha); border-left: 4px solid var(--linha); border-radius: var(--raio); margin-bottom: 10px; box-shadow: var(--sombra); }
.nx-grupo-vencido { border-left-color: var(--perigo); }
.nx-grupo-hoje { border-left-color: var(--atencao); }
.nx-grupo-proximo { border-left-color: var(--acento); }
.nx-grupo-cab { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 10px 14px 4px; }
.nx-grupo-nome { font-family: var(--fonte-titulo); font-weight: 600; font-size: 1.02rem; color: var(--tinta); text-decoration: none; }
.nx-grupo-nome:hover { text-decoration: underline; }
.nx-grupo-rodape { padding: 4px 14px 10px; }
.nx-itens { list-style: none; margin: 0; padding: 0; }
.nx-item { display: grid; grid-template-columns: 132px minmax(0, 1fr) auto; gap: 6px 12px; align-items: start; padding: 8px 14px; border-top: 1px solid var(--linha); }
.nx-grupo .nx-item:first-child { border-top: 0; }
.nx-escritorio .nx-item { border-top-color: var(--linha); padding-left: 0; padding-right: 0; }
.nx-item-texto { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; min-width: 0; }
.nx-item-texto strong { font-weight: 600; }
.nx-item-cliente { font-weight: 600; margin-right: 4px; }
.nx-item-detalhe { color: var(--fraca); font-size: .9rem; flex-basis: 100%; }
.nx-item-selos { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.nx-item-acoes { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.nx-nivel-bloco { background: var(--carta); border: 1px solid var(--linha); border-radius: var(--raio); padding: 2px 0 4px; margin-bottom: 12px; }
.nx-nivel-bloco .nx-secao-titulo { padding: 0 14px; }
.nx-rodape-fila { margin-top: 12px; }
.nx-boas-vindas { max-width: 720px; }
.nx-feito-lista { list-style: none; padding: 0; margin: 0; }
.nx-feito-lista li { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; padding: 6px 0; border-bottom: 1px solid var(--linha); }
.nx-feito-hora { font-variant-numeric: tabular-nums; color: var(--sutil); min-width: 3em; }
.nx-feito-texto { flex: 1 1 260px; min-width: 0; }

/* ------------------------------------------------------------ Ajustes */
.nx-ajustes { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 20px; align-items: start; }
.nx-ajustes-menu { display: flex; flex-direction: column; gap: 2px; position: sticky; top: 76px; }
.nx-ajustes-item { padding: 8px 10px; border-radius: var(--raio); color: var(--fraca); text-decoration: none; font-weight: 600; }
.nx-ajustes-item:hover { background: var(--carta); color: var(--tinta); }
.nx-ajustes-item.nx-ativo { background: var(--carta); color: var(--tinta); box-shadow: inset 3px 0 0 var(--acento); }
.nx-ajustes-corpo { min-width: 0; }
.nx-ajustes-corpo > .nx-secao-titulo { margin-top: 0; font-size: 1.15rem; }
.nx-fontes li { margin-bottom: 6px; }

/* ------------------------------------------------------------ responsivo (abaixo de 900 px a lateral recolhe) */
@media (max-width: 900px) {
  .nx-casca { grid-template-columns: minmax(0, 1fr); }
  .nx-lateral { position: fixed; left: 0; top: 0; bottom: 0; width: 260px; z-index: 50; transform: translateX(-100%); transition: transform .2s ease; visibility: hidden; }
  body.nx-menu-aberto .nx-lateral { transform: none; visibility: visible; }
  body.nx-menu-aberto .nx-cortina { display: block; position: fixed; inset: 0; background: rgba(4, 20, 53, .5); z-index: 45; }
  .nx-topo .nx-abrir-menu { display: inline-flex; }
  .nx-topo { padding: 10px 16px; }
  .nx-vista { padding: 16px 16px 40px; }
  .nx-ajustes { grid-template-columns: minmax(0, 1fr); }
  .nx-ajustes-menu { position: static; flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 640px) {
  body { font-size: 14.5px; }
  .nx-busca { order: 3; flex: 1 1 100%; }
  .nx-titulo { font-size: 1.1rem; }
  .nx-quem { padding: 4px 10px; font-size: .85rem; }
  .nx-item { grid-template-columns: minmax(0, 1fr); }
  .nx-item-acoes { justify-content: flex-start; }
  .nx-hoje-topo { flex-direction: column; align-items: stretch; }
  .nx-contadores { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nx-contador-filtro { justify-content: flex-start; }
  .nx-faixa { font-size: .85rem; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
@media print {
  .nx-lateral, .nx-topo, .nx-faixas, .nx-avisos, .nx-item-acoes { display: none !important; }
  .nx-casca { display: block; }
}
