:root { --roxo:#5A008C; --mag:#A12BBF; }
* { box-sizing:border-box; }
body { font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif; margin:0; background:#f2f4f8; color:#222; }
a { color:var(--mag); text-decoration:none; }
code { background:#f0e8f5; padding:1px 6px; border-radius:4px; font-size:13px; }

/* Login */
.login-body { display:flex; align-items:center; justify-content:center; min-height:100vh; }
.login-card { background:#fff; padding:32px; border-radius:16px; width:340px; box-shadow:0 10px 40px rgba(0,0,0,.1); }
.login-card h1 { margin:0; font-size:24px; color:var(--roxo); }
.login-card .sub { margin:2px 0 18px; color:#8a94a6; }
.login-card label { display:block; margin:10px 0 4px; font-size:13px; color:#555; }
.login-card input { width:100%; padding:11px; border:1px solid #dce0ea; border-radius:8px; }
.login-card button { width:100%; margin-top:16px; padding:12px; background:var(--roxo); color:#fff; border:none; border-radius:8px; font-weight:600; cursor:pointer; }
.login-card .dica { font-size:12px; color:#8a94a6; margin-top:14px; }
.alerta { background:#fdeeee; color:#c0392b; padding:10px; border-radius:8px; margin-bottom:10px; font-size:14px; }

/* Painel */
.topo { background:var(--roxo); color:#fff; padding:14px 22px; display:flex; justify-content:space-between; align-items:center; }
.topo a { color:#fff; opacity:.9; }
.wrap { max-width:1000px; margin:22px auto; padding:0 16px; }
.card { background:#fff; border:1px solid #e3e7ef; border-radius:14px; padding:20px; margin-bottom:18px; }
.card h3 { margin-top:0; }
.ok { background:#e3f6ea; color:#1e7e46; padding:10px 14px; border-radius:8px; margin-bottom:16px; }
label { display:block; font-size:13px; color:#555; margin:8px 0 4px; }
input,select { padding:10px; border:1px solid #dce0ea; border-radius:8px; font-family:inherit; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; }
.grid input,.grid select { width:100%; }
button { padding:10px 16px; background:var(--roxo); color:#fff; border:none; border-radius:8px; font-weight:600; cursor:pointer; margin-top:12px; }
.btn-sec { padding:10px 16px; }
.row { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.hint { font-size:13px; color:#667; }

table.lista { width:100%; border-collapse:collapse; }
table.lista th,table.lista td { border-bottom:1px solid #eef0f5; padding:10px; text-align:left; font-size:14px; vertical-align:top; }
.badge { padding:2px 9px; border-radius:20px; font-size:12px; font-weight:700; }
.badge.ok { background:#e3f6ea; color:#1e7e46; } .badge.bad { background:#fdeeee; color:#c0392b; }
.acoes { white-space:nowrap; }
.acoes .inline { display:inline; margin:0; }
.mini { padding:4px 8px; font-size:12px; margin:0 2px; background:#eef0f5; color:#333; }
.mini.bad { background:#fdeeee; color:#c0392b; } .mini.ok { background:#e3f6ea; color:#1e7e46; }
