/* Aba Roteiro — o mesmo estilo na aba do Demandas e no espelho aberto (roteiro.econucleo.com). Usa as variáveis
   de cor e fonte de quem carrega (--tinta, --papel, --linha, --mono, --sans…). [CC 14/09/2026] */
.rt { max-width: 1240px; margin: 0 auto; padding: 12px 16px 40px; }
.rt-topo { display: grid; grid-template-columns: auto 1fr auto; gap: 6px 26px; align-items: end; }
.rt-titulo { margin: 0; font-size: 20px; font-weight: 900; letter-spacing: -.02em; text-transform: uppercase; }
.rt-sub { margin: 2px 0 0; color: var(--tinta-2); font-size: 12.5px; }
.rt-idade { font-family: var(--mono); font-size: 11.5px; }
.rt-idade.velha { color: var(--hoje); font-weight: 700; }
.rt-contador { display: flex; align-items: baseline; gap: 10px; }
.rt-num { font-size: 52px; font-weight: 900; line-height: .9; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.rt-de { color: var(--tinta-2); }
.rt-de b { color: var(--tinta); }
.rt-acoes { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.rt-bt { background: var(--papel-2); color: var(--tinta); border: 1px solid var(--linha-2); border-radius: 7px; padding: 7px 12px; cursor: pointer; min-height: 36px; font: inherit; }
.rt-bt:hover { border-color: var(--tinta-3); }
.rt-bt[aria-pressed="true"] { background: var(--tinta); color: var(--papel); border-color: var(--tinta); }
.rt-bt.rt-principal { background: linear-gradient(90deg, #1b37c4, #0a8fd0); color: #fff; border-color: transparent; font-weight: 700; }
.rt-barra { grid-column: 2; height: 6px; border-radius: 3px; background: var(--linha); overflow: hidden; max-width: 520px; }
.rt-barra i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, #2240d8, #00b8f8); transition: width .25s ease; }
.rt-avisos:empty { display: none; }
.rt-avisos { display: grid; gap: 6px; margin-top: 10px; }
.rt-aviso { padding: 8px 12px; border-radius: 7px; font-size: 13px; background: var(--hoje-fundo); color: var(--hoje); }
.rt-aviso.erro { background: var(--atraso-fundo); color: var(--atraso); }
.rt-corpo { display: grid; grid-template-columns: minmax(0, 1fr) 320px; margin-top: 12px; border: 1px solid var(--linha); border-radius: 10px; overflow: hidden; height: calc(100vh - 190px); min-height: 460px; background: var(--papel); }
.rt-palco { position: relative; background: #070b16; }   /* palco escuro nos dois temas, de propósito */
#rt-mapa { position: absolute; inset: 0; }
.rt-legenda { position: absolute; left: 14px; top: 12px; background: rgba(13,20,36,.88); color: #eef1f7; border: 1px solid #2c3a5c; border-radius: 8px; padding: 7px 11px; font-size: 13px; pointer-events: none; }
.rt-legenda:empty { display: none; }
.rt-legenda b { font-family: var(--mono); color: #00b8f8; margin-right: 6px; }
.rt-escala { position: absolute; left: 14px; bottom: 14px; background: rgba(13,20,36,.88); color: #b3bdd2; border: 1px solid #1f2a44; border-radius: 8px; padding: 7px 11px; font-size: 11.5px; }
.rt-grad { height: 8px; width: 170px; border-radius: 4px; margin: 5px 0 3px; background: linear-gradient(90deg, #2240d8, #00b8f8); }
.rt-pontas { display: flex; justify-content: space-between; }
.rt-nao { display: flex; align-items: center; gap: 6px; margin-top: 6px; }
.rt-nao i { width: 14px; height: 8px; border-radius: 2px; background: #141d33; border: 1px solid #2c3a5c; }
.rt-lado { border-left: 1px solid var(--linha); display: flex; flex-direction: column; min-height: 0; }
.rt-lado-topo { padding: 10px 12px 8px; border-bottom: 1px solid var(--linha); display: grid; gap: 6px; }
.rt-rot { font-size: 10.5px; text-transform: uppercase; letter-spacing: .12em; color: var(--tinta-3); font-weight: 700; }
#rt-busca { width: 100%; background: var(--papel-2); border: 1px solid var(--linha-2); border-radius: 7px; color: var(--tinta); padding: 7px 10px; font: inherit; }
.rt-lista { list-style: none; margin: 0; padding: 4px 0; overflow: auto; flex: 1; }
.rt-lista button { width: 100%; display: grid; grid-template-columns: 30px 10px 1fr; gap: 8px; align-items: center; text-align: left; background: none; border: 0; color: var(--tinta); padding: 5px 12px; cursor: pointer; min-height: 32px; font: inherit; }
.rt-lista button:hover, .rt-lista button.ativo { background: var(--papel-2); }
.rt-lista .n { font-family: var(--mono); font-size: 12px; color: var(--tinta-3); text-align: right; }
.rt-lista .cor { width: 10px; height: 10px; border-radius: 2px; }
.rt-lista .nota { display: block; font-size: 11.5px; color: var(--tinta-3); }
.rt-lista li.repete button { opacity: .72; }
.rt-lista li.naocasou .cor { border: 1px dashed var(--hoje); }
#roteiro .maplibregl-popup-content { background: #0d1424; color: #eef1f7; border: 1px solid #2c3a5c; border-radius: 8px; padding: 8px 12px; font: 13px/1.4 var(--sans); }
#roteiro .maplibregl-popup-tip { border-top-color: #0d1424 !important; border-bottom-color: #0d1424 !important; }
#roteiro .rt-quando { color: #00b8f8; font-family: var(--mono); font-size: 12px; }
#roteiro .rt-ainda { color: #8792ab; font-size: 12px; }
@media (max-width: 860px) {
  .rt-topo { grid-template-columns: 1fr; }
  .rt-barra { grid-column: 1; max-width: none; }
  .rt-acoes { justify-content: flex-start; }
  .rt-corpo { grid-template-columns: 1fr; height: auto; }
  .rt-palco { height: 58vh; }
  .rt-lado { border-left: 0; border-top: 1px solid var(--linha); max-height: 55vh; }
  .rt-escala { display: none; }
}
@media (prefers-reduced-motion: reduce) { .rt-barra i { transition: none; } }
