/* Portal Vivensis × Starlink: visual próprio, escuro e sóbrio (não usa a identidade da Starlink). */
:root{--fundo:#0b1220;--cartao:#121b2e;--linha:#22304a;--texto:#e7ecf5;--fraco:#93a1ba;--acento:#7fb3ff;--erro:#ff8c8c;
  --ok:#7fd8b0;--aviso:#f2cf7a;color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--fundo);color:var(--texto);font:15px/1.5 "Segoe UI",system-ui,Arial,sans-serif}
a{color:var(--acento)}
.topo{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px clamp(16px,4vw,40px);border-bottom:1px solid var(--linha)}
.marca{display:flex;align-items:center;gap:12px;color:var(--texto);text-decoration:none;font-weight:600;min-width:0}
.marca img{width:36px;height:36px;border-radius:8px;background:#fff;padding:2px}
.acoes{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.acoes form{margin:0}
.quem,.rodape,.nota{color:var(--fraco);font-size:13px}
main{max-width:1200px;margin:0 auto;padding:20px clamp(16px,4vw,40px)}
.rodape{text-align:center;padding:24px 16px}
.acesso{max-width:420px;margin:40px auto;background:var(--cartao);border:1px solid var(--linha);border-radius:14px;padding:24px}
.acesso h1{font-size:18px;margin:0 0 12px}
form label{display:grid;gap:6px;margin:0 0 14px;font-size:13px;color:var(--fraco)}
input,select{font:inherit;color:var(--texto);background:var(--fundo);border:1px solid var(--linha);border-radius:10px;padding:10px 12px;min-width:0}
input:focus,select:focus{outline:2px solid var(--acento);outline-offset:1px}
.botao{display:inline-block;font:inherit;font-weight:600;background:var(--acento);color:#06142b;border:0;border-radius:10px;padding:10px 16px;cursor:pointer;text-decoration:none}
.botao.fantasma{background:transparent;color:var(--texto);border:1px solid var(--linha)}
.erro{color:var(--erro);font-weight:600}
.aviso{background:var(--cartao);border:1px solid var(--linha);border-left:4px solid var(--aviso);padding:14px 16px;border-radius:10px}
.qr{background:#fff;border-radius:10px;padding:8px;width:max-content;max-width:100%;margin:12px auto}
.qr svg{display:block;max-width:100%;height:auto}
.chave{font-family:ui-monospace,Consolas,monospace;letter-spacing:.06em;word-break:break-all;text-align:center}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0 0 16px}
.card{background:var(--cartao);border:1px solid var(--linha);border-radius:14px;padding:14px 16px}
.card span{color:var(--fraco);font-size:13px}.card>b{display:block;font-size:32px;font-weight:600}
.card.largo{grid-column:span 2}.card ul{list-style:none;margin:6px 0 0;padding:0}.card li{display:flex;justify-content:space-between;gap:8px}
.painel{background:var(--cartao);border:1px solid var(--linha);border-radius:14px;padding:16px;margin:0 0 16px}
.painel h2{font-size:16px;margin:0 0 12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.painel h3{font-size:14px}
.busca{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.busca input{flex:1 1 240px}
.tabela{overflow:auto;border:1px solid var(--linha);border-radius:10px}
table{border-collapse:collapse;width:100%;min-width:760px}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--linha);vertical-align:top}
th{color:var(--fraco);font-weight:600;font-size:13px}
td:first-child a,td:nth-child(2){white-space:nowrap}
.mono{font-family:ui-monospace,Consolas,monospace;font-size:13px;white-space:nowrap}
.selo{font-size:12px;font-weight:600;padding:2px 10px;border-radius:999px;background:var(--linha)}
.selo.st-resolved,.selo.st-closed{background:#173a2f;color:var(--ok)}
.selo.st-waiting_starlink{background:#3a3318;color:var(--aviso)}
.selo.st-in_progress,.selo.st-received{background:#17284a;color:var(--acento)}
.vazio{color:var(--fraco);text-align:center;padding:20px}
.dados{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0 0 12px}
.dados div{display:grid;gap:2px}.dados dt{color:var(--fraco);font-size:13px}.dados dd{margin:0;overflow-wrap:anywhere}
.relato,.texto{white-space:pre-wrap;overflow-wrap:anywhere}
.relato{background:var(--fundo);border-radius:10px;padding:12px}
.evento{border-top:1px solid var(--linha);padding:12px 0}.evento header{color:var(--fraco);font-size:13px}
@media(max-width:600px){.card.largo{grid-column:auto}.marca span{font-size:14px}}
