/* Base UI usada no report e páginas internas */
:root {
  --brand:#2563eb; --brand-dark:#1e3a8a; --brand-soft:#93c5fd;
  --ink:#0f172a; --muted:#64748b; --bg:#f8fafc;
  --card:#ffffff; --border:#e5e7eb;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, "Helvetica Neue", Arial;
}
*{box-sizing:border-box}
body { margin:0; background: var(--bg); color: var(--ink); }
a { color: var(--brand); text-decoration: none; }
.container { max-width: 1200px; margin: 0 auto; padding: 24px; }
.btn, button { cursor:pointer; border:1px solid var(--border); background:#fff; color: var(--ink); border-radius:10px; padding:10px 14px; }
.btn.primary { background: var(--brand); border-color: var(--brand); color:#fff; }
.btn.primary:hover { background:#1d4ed8; border-color:#1d4ed8; }
.btn.ghost { background:#fff; }
.btn.ghost:hover { background:#f3f4f6; }

/* Report components */
.wrap { max-width:1200px; margin: 0 auto; padding: 24px; }
h2 { margin: 0 0 10px; color:var(--brand-dark); }
.row { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
label { font-size:14px; }
input[type="file"]{ padding:6px; }
input[type="text"], input[type="number"], input[type="datetime-local"], input[type="password"] {
  padding:6px 8px; border-radius:8px; border:1px solid var(--border); background:#fff;
}
textarea { width:100%; min-height:140px; padding:10px; border-radius:10px; border:1px solid var(--border); background:#fff; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; }
.muted { color:#666; font-size:13px; }
.section { background:#fff; border:1px solid var(--border); border-radius:14px; padding:16px; margin-bottom:16px; }
.grid2 { display:grid; grid-template-columns:1fr; gap:16px; }
@media(min-width: 1100px){ .grid2{ grid-template-columns: 1fr 1fr; } }
table{ width:100%; border-collapse: collapse; font-size:14px; background:#fff; }
th,td{ border:1px solid #e6e6e6; padding:8px 10px; text-align:left; vertical-align:top; }
th{ background:#fafafa; }
.toolbar{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:8px 0; }
.spacer{ flex:1 }
.hint{ font-size:12px; color:#444; margin-top:6px }
.pager { display:flex; gap:8px; align-items:center; margin:10px 0; }
.pager button { padding:6px 10px; }
.pager select { padding:6px 8px; border-radius:8px; border:1px solid var(--border); }
.incomplete-row td { background: #fff3cd; }
.alert-row td { background: #fff1f0; }
.status-badge { display:inline-block; padding:2px 8px; border-radius:999px; font-size:12px; border:1px solid var(--border); background:#fff; }

/* Login */
.login-wrap { min-height: calc(100vh - 58px); display:flex; align-items:center; justify-content:center; padding:24px; }
.login-card { width:100%; max-width:420px; background:#fff; border:1px solid var(--border); border-radius:16px; padding:22px; box-shadow: 0 10px 24px rgba(0,0,0,.04);}
.login-sub { color:var(--muted); font-size:14px; margin-bottom:14px; }
.login-row { display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.login-actions { display:flex; align-items:center; gap:10px; }
.error { color:#b91c1c; background:#fee2e2; border:1px solid #fecaca; padding:8px 10px; border-radius:10px; font-size:13px; }
