:root{color-scheme:dark;--bg:#0b1220;--card:#121c2d;--line:#263653;--text:#e7eefb;--muted:#9aabc4;--accent:#55d6be;--danger:#ff7885}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px system-ui,sans-serif}header{display:flex;gap:1rem;align-items:center;padding:1rem 5vw;border-bottom:1px solid var(--line)}header span{color:var(--muted);flex:1}.link{background:none;border:0;color:var(--accent);cursor:pointer;font:inherit}main{max-width:1200px;margin:2rem auto;padding:0 1rem}.login{min-height:100vh;display:grid;place-items:center;margin:0}.card,.metric{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.25rem}.login .card{width:min(420px,calc(100% - 2rem))}.brand{font-weight:800;letter-spacing:.08em}.brand span{color:var(--accent)}h1,h2{margin-top:0}.error{color:var(--danger)}label{display:grid;gap:.4rem;margin:1rem 0;color:var(--muted)}input{width:100%;padding:.7rem;border:1px solid var(--line);border-radius:6px;background:#0d1728;color:var(--text)}button{padding:.7rem 1rem;border:0;border-radius:6px;background:var(--accent);color:#06201b;font-weight:700;cursor:pointer}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}.metric{display:grid;gap:.4rem}.metric small,.metric span{color:var(--muted)}.ok{color:var(--accent)!important}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.7rem;border-bottom:1px solid var(--line);white-space:nowrap}th{color:var(--muted)}code{display:block;max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#b8c8e3}@media(max-width:800px){.grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.grid{grid-template-columns:1fr}}

.mapa-legenda { margin: .5rem 0 0; font-size: .8rem; opacity: .75; }
#mapa { background: #0f172a; }

.filtro { display: flex; gap: 1rem; align-items: flex-end; margin: 0 0 1rem; flex-wrap: wrap; }
.filtro select { padding: .6rem; border: 1px solid var(--line); border-radius: 6px; background: #0d1728; color: var(--text); min-width: 320px; }
.filtro label { margin: 0; }
.ajuda { color: var(--muted); font-size: .85rem; margin-top: 0; }
textarea { width: 100%; padding: .7rem; border: 1px solid var(--line); border-radius: 6px; background: #0d1728; color: var(--text); font-family: ui-monospace, monospace; font-size: .85rem; }
.flash { border-color: var(--accent); }
