*{box-sizing:border-box}
body{margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif;background:#f4f5f7;color:#1f2937}
.nav{display:flex;gap:16px;align-items:center;background:#1e293b;color:#fff;padding:12px 24px;flex-wrap:wrap}
.nav a{color:#cbd5e1;text-decoration:none;padding:4px 8px;border-radius:6px}
.nav a.on,.nav a:hover{background:#334155;color:#fff}
.spacer{flex:1}
.container{max-width:1000px;margin:24px auto;padding:0 16px}
h1{margin-top:0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:16px 0}
.card{background:#fff;padding:16px;border-radius:10px;box-shadow:0 1px 3px #0001}
.card span{display:block;color:#6b7280;font-size:.85rem}
.card b{font-size:1.4rem}
.card.pos b,.posc{color:#15803d}.card.neg b,.negc{color:#b91c1c}
table{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 3px #0001;margin:12px 0 24px}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid #eef0f3}
th{background:#f8fafc;font-size:.85rem;color:#475569}
.form-grid{background:#fff;padding:16px;border-radius:10px;box-shadow:0 1px 3px #0001;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px;align-items:end}
.form-grid h2{grid-column:1/-1;margin:0}
label{display:flex;flex-direction:column;font-size:.85rem;color:#475569;gap:4px}
input,select{padding:9px;border:1px solid #cbd5e1;border-radius:6px;font-size:1rem}
button{background:#2563eb;color:#fff;border:0;padding:10px 16px;border-radius:6px;cursor:pointer;font-size:1rem}
button:hover{background:#1d4ed8}
button.link{background:none;color:#b91c1c;padding:0}
.actions{display:flex;gap:12px}.actions form{margin:0}
.alert{background:#fef3c7;border:1px solid #fcd34d;padding:10px 14px;border-radius:6px}
.inline{margin-bottom:12px;display:flex;gap:8px;align-items:end}
.login-body{display:flex;min-height:100vh;align-items:center;justify-content:center}
.login-box{background:#fff;padding:32px;border-radius:12px;box-shadow:0 4px 20px #0002;width:340px;display:flex;flex-direction:column;gap:14px}
.login-box h1{margin:0}

/* páginas públicas (o que o cliente final vê ao tocar na placa) */
.pub-body{margin:0;min-height:100vh;display:flex;justify-content:center;background:#f4f5f7;padding:16px}
.pub-box{background:#fff;width:100%;max-width:440px;align-self:flex-start;margin-top:24px;padding:24px;border-radius:14px;box-shadow:0 4px 20px #0002;text-align:center}
.pub-box h1{margin:0 0 12px}
.pub-label{margin:14px 0 2px;color:#6b7280;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
.pub-valor{font-size:1.4rem;font-weight:600;margin:0 0 8px;word-break:break-all}
.pub-codigo{font-size:.75rem;word-break:break-all;background:#f1f5f9;padding:10px;border-radius:8px;text-align:left;margin:0 0 8px}
.pub-box button,.pub-btn{display:block;width:100%;background:#2563eb;color:#fff;padding:12px;border-radius:8px;text-decoration:none;font-size:1rem;border:0;cursor:pointer;margin:6px 0}
.pub-passos{text-align:left;color:#475569;font-size:.9rem}
.qr{background:#fff;padding:8px;display:inline-block;border-radius:8px;margin:8px 0}
.qr svg{width:220px;height:220px}
details{margin-top:12px;text-align:center}
