* { box-sizing: border-box; }
body { font-family: -apple-system, Segoe UI, Roboto, sans-serif; background:#f4f5f7; margin:0; color:#1f2430; }
.topbar { display:flex; align-items:center; justify-content:space-between; background:#1f2430; color:#fff; padding:12px 24px; }
.topbar a { color:#fff; text-decoration:none; margin-right:16px; }
.logo { font-weight:bold; font-size:1.1rem; }
.container { max-width:960px; margin:24px auto; padding:0 16px; }
.cards { display:flex; gap:16px; margin-bottom:24px; flex-wrap:wrap; }
.card { background:#fff; border-radius:8px; padding:16px 24px; box-shadow:0 1px 3px rgba(0,0,0,.1); flex:1; min-width:180px; }
.card-label { display:block; color:#6b7280; font-size:.85rem; }
.card-value { display:block; font-size:1.8rem; font-weight:700; }
.menu-grid { display:flex; gap:16px; flex-wrap:wrap; }
.menu-tile { flex:1; min-width:150px; text-align:center; background:#fff; padding:32px 16px; border-radius:8px; text-decoration:none; color:#1f2430; font-weight:600; box-shadow:0 1px 3px rgba(0,0,0,.1); }
.login-box { max-width:360px; margin:80px auto; background:#fff; padding:32px; border-radius:8px; box-shadow:0 1px 3px rgba(0,0,0,.1); }
form label { display:block; margin-top:10px; font-size:.85rem; color:#374151; }
form input, form select { width:100%; padding:8px; margin-top:4px; border:1px solid #d1d5db; border-radius:4px; }
button { margin-top:16px; background:#2563eb; color:#fff; border:none; padding:10px 18px; border-radius:6px; cursor:pointer; }
button:hover { background:#1d4ed8; }
.btn-secundario { display:inline-block; margin-bottom:16px; color:#2563eb; text-decoration:none; }
fieldset { border:1px solid #e5e7eb; border-radius:6px; margin-bottom:16px; }
.alert { padding:10px 14px; border-radius:6px; margin:12px 0; }
.alert-erro { background:#fee2e2; color:#991b1b; }
.alert-sucesso { background:#dcfce7; color:#166534; }
.alert-aviso { background:#fef9c3; color:#854d0e; }
.tabela-resultados { width:100%; border-collapse:collapse; margin-top:12px; background:#fff; }
.tabela-resultados th, .tabela-resultados td { border:1px solid #e5e7eb; padding:8px; font-size:.85rem; text-align:left; }
.hint { color:#6b7280; font-size:.85rem; }
.form-consulta { display:flex; gap:8px; align-items:flex-end; }
.form-consulta select, .form-consulta input { margin-top:0; }
.linha-nao-encontrada { background:#fef2f2; color:#7f1d1d; }
.btn-perigo { background:#dc2626; }
.btn-perigo:hover { background:#b91c1c; }
.form-inline-senha { display:flex; gap:4px; }
.form-inline-senha input { margin-top:0; width:120px; }