:root{--bg:#f5f6f8;--card:#fff;--ink:#1d2433;--muted:#6b7280;--line:#e3e6eb;--brand:#2457d6;--ok:#157f3b;--bad:#b42318;--warn:#946200}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--brand)}
h1{font-size:1.5rem;margin:.2rem 0 1rem} h2{font-size:1.05rem;margin:0 0 .6rem}
.wrap{max-width:1000px;margin:0 auto;padding:16px}
.topbar{background:var(--card);border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 16px;position:sticky;top:0;z-index:5}
.brand{font-weight:700;text-decoration:none;color:var(--ink);font-size:1.15rem}
.menu{display:flex;gap:4px;overflow-x:auto;flex:1 1 100%;order:3}
.menu a{padding:8px 12px;border-radius:8px;text-decoration:none;color:var(--ink);white-space:nowrap}
.menu a.on{background:var(--brand);color:#fff}
.topbar form{margin-left:auto}
@media(min-width:760px){.menu{flex:1;order:0}.topbar form{margin-left:0}}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}
.narrow{max-width:380px;margin:12vh auto}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid .card{margin:0}
.big{font-size:2rem;font-weight:700;margin:.2rem 0}
.muted{color:var(--muted)} .small{font-size:.85rem}
.stack{display:flex;flex-direction:column}
.row{display:flex;flex-wrap:wrap;gap:8px 20px;margin:.5rem 0}
input,select{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px;width:100%;background:#fff}
input[type=checkbox],input[type=radio]{width:auto}
label{display:block}
.check{display:inline-flex;gap:8px;align-items:center;margin:.25rem 0}
.row label{display:flex;gap:8px;align-items:center}.row input[type=date]{width:auto}
.btn{display:inline-block;background:var(--brand);color:#fff;border:0;border-radius:8px;padding:10px 16px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;margin:.25rem .25rem .25rem 0}
.btn.sec{background:#e8ecf5;color:var(--ink)} .btn.danger{background:var(--bad)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.big-btn{width:100%;padding:14px;font-size:1.05rem}
button.link{background:none;border:0;color:var(--brand);font:inherit;cursor:pointer;padding:8px}
.aviso{background:#fff7e0;border:1px solid #f1d58a;color:var(--warn);padding:10px 12px;border-radius:8px}
.erro{background:#fdecea;border:1px solid #f4b6b0;color:var(--bad);padding:10px 12px;border-radius:8px}
.tag{display:inline-block;font-size:.8rem;padding:2px 8px;border-radius:99px;background:#e8ecf5}
.tag.concluido{background:#dcf5e5;color:var(--ok)} .tag.erro,.tag.cancelado,.tag.interrompido{background:#fdecea;color:var(--bad)}
.tag.executando{background:#e0eaff;color:var(--brand)}
.bar{height:14px;background:#e8ecf5;border-radius:99px;overflow:hidden}
.bar>div{height:100%;background:var(--brand);transition:width .6s}
.acoes{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.acoes form{margin:0}
.log{background:#0f172a;color:#d6e2ff;padding:12px;border-radius:8px;overflow:auto;max-height:340px;font-size:.82rem;white-space:pre-wrap}
ul.plain{padding-left:1.1rem;margin:0}
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.92rem}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:600;white-space:nowrap}
.filtros{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.pager{display:flex;gap:16px;align-items:center;justify-content:center}
.resultados{list-style:none;margin:6px 0;padding:0;max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:8px}
.resultados button{width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid var(--line);padding:10px;font:inherit;cursor:pointer}
.resultados button:hover{background:#f0f4ff}.resultados span{float:right;color:var(--brand)}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.chip{background:#e0eaff;border-radius:99px;padding:4px 6px 4px 12px;font-size:.88rem}
.chip .x{border:0;background:none;font-size:1.1rem;cursor:pointer;color:var(--brand)}
.ufs{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:6px;margin-bottom:12px}
.uf span{display:block;text-align:center;padding:8px 0;border:1px solid var(--line);border-radius:8px;cursor:pointer}
.uf input{position:absolute;opacity:0}
.uf input:checked+span{background:var(--brand);color:#fff;border-color:var(--brand)}
.uf input:focus-visible+span{outline:2px solid var(--brand)}
.opcao{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:10px;margin:8px 0;cursor:pointer}
.opcao input{margin-top:5px}
a.proj{display:block;text-decoration:none;color:inherit}a.proj:hover{border-color:var(--brand)}
.quem{font-size:.85rem;color:var(--muted)}
/* ---- dashboard ---- */
:root{--viz-1:#2a78d6;--viz-o1:#86b6ef;--viz-o2:#5598e7;--viz-o3:#2a78d6;--viz-o4:#184f95;--viz-ink:#52514e;--viz-muted:#898781;--viz-grid:#e1e0d9}
.abas{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 0 16px;overflow-x:auto}
.abas a{padding:8px 14px;text-decoration:none;color:var(--ink);white-space:nowrap;border-bottom:2px solid transparent}
.abas a.on{border-bottom-color:var(--brand);color:var(--brand);font-weight:600}
.tiles{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:8px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.tile-n{font-size:1.9rem;font-weight:700;line-height:1.1}.tile-l{color:var(--muted);font-size:.88rem}
.meter{display:block;height:6px;background:#e8ecf5;border-radius:99px;margin-top:8px;overflow:hidden}
.meter i{display:block;height:100%;background:var(--viz-1);border-radius:99px}
.grid2{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));margin-bottom:16px}
.grid2 .card{margin:0}
.chart-wrap{position:relative;width:100%}
.ver-tabela{margin-top:8px;font-size:.85rem}.ver-tabela summary{cursor:pointer;color:var(--muted)}
.ver-tabela table{margin-top:6px}
.nowrap{white-space:nowrap}
select.etapa{width:auto;padding:6px 8px}
/* ---- Maps ---- */
.st-encontrado{color:#006300;font-weight:600}.st-duvidoso{color:#946200;font-weight:600}.st-nao_encontrado{color:var(--bad);font-weight:600}
dl.def,.dados-google dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0}
dl.def dt,.dados-google dt{color:var(--muted)}dl.def dd,.dados-google dd{margin:0}
.dados-google{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}
