:root { --verde: #7a9a00; --vermelho: #d7141a; --azul: #3a78c2; --borda: #d5dae0; --fundo: #f3f5f7; --texto: #1f2933; }
* { box-sizing: border-box; }
body { margin: 0; font-family: "Segoe UI", Roboto, Arial, sans-serif; background: var(--fundo); color: var(--texto); }
header.topo { background: #1f2933; color: #fff; display: flex; align-items: center; gap: 16px; padding: 10px 20px; }
header.topo h1 { font-size: 18px; margin: 0; font-weight: 500; flex: 1; }
header.topo a, header.topo button { color: #fff; background: none; border: 1px solid #5b6772; padding: 6px 12px; border-radius: 4px; cursor: pointer; text-decoration: none; font-size: 14px; }
main { max-width: 1200px; margin: 20px auto; padding: 0 16px; }
.cartao { background: #fff; border: 1px solid var(--borda); border-radius: 6px; padding: 16px; margin-bottom: 16px; }
.abas { display: flex; gap: 4px; margin-bottom: 12px; }
.abas button { padding: 8px 18px; border: 1px solid var(--borda); background: #fff; cursor: pointer; border-radius: 4px 4px 0 0; font-size: 14px; }
.abas button[aria-selected="true"] { background: var(--azul); color: #fff; border-color: var(--azul); }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { text-align: left; padding: 8px; border-bottom: 1px solid var(--borda); }
th { background: #eef1f4; position: sticky; top: 0; }
.barra { display: flex; gap: 8px; margin-bottom: 12px; }
.barra input[type="search"] { flex: 1; }
input, select { padding: 8px; border: 1px solid #b8c0c8; border-radius: 4px; font-size: 14px; width: 100%; }
label { display: block; font-size: 13px; margin-bottom: 10px; }
label.caixa { display: flex; gap: 8px; align-items: center; }
label.caixa input { width: auto; }
button.primario, button.perigo, button.secundario { padding: 8px 14px; border-radius: 4px; border: 1px solid transparent; cursor: pointer; font-size: 14px; }
button.primario { background: var(--azul); color: #fff; }
button.perigo { background: #fff; color: var(--vermelho); border-color: var(--vermelho); }
button.secundario { background: #fff; border-color: #b8c0c8; }
.selo-status { display: inline-block; padding: 2px 8px; border-radius: 10px; color: #fff; font-size: 12px; }
.selo-ONLINE { background: #7a9a00; } .selo-OFFLINE { background: var(--vermelho); } .selo-PAUSADO { background: var(--azul); } .selo-DESCONHECIDO { background: #8a8a8a; }
dialog { border: 0; border-radius: 8px; padding: 20px; width: min(640px, 95vw); box-shadow: 0 8px 30px rgba(0,0,0,.35); }
dialog::backdrop { background: rgba(0,0,0,.45); }
.grade { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.grade .largo { grid-column: 1 / -1; }
#seletor-mapa { height: 220px; border: 1px solid var(--borda); border-radius: 4px; margin-bottom: 10px; }
.acoes-dialogo { display: flex; justify-content: flex-end; gap: 8px; }
a.botao-link { padding: 8px 14px; border-radius: 4px; border: 1px solid #b8c0c8; text-decoration: none; font-size: 14px; color: var(--texto); background: #fff; white-space: nowrap; }
a.botao-link.primario { background: var(--azul); border-color: var(--azul); color: #fff; }
#tabela-relatorio td small { color: #667; display: block; }
#tabela-relatorio td.ruim strong { color: var(--vermelho); }
.erro { color: var(--vermelho); min-height: 20px; font-size: 13px; }
.centro { max-width: 360px; margin: 12vh auto; }
.nota { font-size: 12px; color: #667; }
@media (max-width: 640px) { .grade { grid-template-columns: 1fr; } table { font-size: 12px; } }
