:root{
  --bg:#f1f4f7;
  --card:#ffffff;
  --text:#1a1f2b;
  --muted:#607083;
  --accent:#0a7f5a;
  --accent-2:#095f44;
  --danger:#b42318;
  --border:#d6dde5;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:"Segoe UI",Tahoma,sans-serif;
  background:linear-gradient(180deg,#e8eef3 0%,#f4f7fa 65%);
  color:var(--text);
}
.topbar{
  padding:14px 18px;
  background:#ffffffd9;
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:sticky;
  top:0;
  z-index:10;
}
.topbar h1{margin:0;font-size:18px}
.topbar-right{display:flex;gap:10px;align-items:center}
.container{
  width:min(1100px,95%);
  margin:18px auto 28px;
  display:grid;
  gap:14px;
}
.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:14px;
  padding:16px;
  box-shadow:0 8px 24px rgba(0,0,0,.05);
}
.auth-card{max-width:420px;margin:20px auto}
h2{margin:0 0 12px;font-size:18px}
label{display:block;font-size:13px;color:var(--muted);margin:8px 0 6px}
input{
  width:100%;
  border:1px solid var(--border);
  border-radius:10px;
  padding:11px;
  font-size:14px;
}
select{
  width:100%;
  border:1px solid var(--border);
  border-radius:10px;
  padding:11px;
  font-size:14px;
  background:#fff;
}
.grid-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px;
}
.check-wrap{
  display:flex;
  align-items:flex-end;
}
.check-wrap label{
  margin:0;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:14px;
}
.check-wrap input[type="checkbox"]{
  width:auto;
}
.form-actions{
  grid-column:1/-1;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:4px;
}
.btn{
  border:1px solid var(--border);
  background:#fff;
  color:#1f2937;
  padding:9px 12px;
  border-radius:10px;
  cursor:pointer;
  text-decoration:none;
  display:inline-block;
}
.btn:hover{filter:brightness(.98)}
.btn-primary{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
}
.btn-primary:hover{background:var(--accent-2)}
.btn-danger{
  background:var(--danger);
  border-color:var(--danger);
  color:#fff;
}
.btn-light{background:#f8fafc}
.table-wrap{overflow:auto}
table{
  width:100%;
  border-collapse:collapse;
  min-width:760px;
}
th,td{
  border-bottom:1px solid var(--border);
  text-align:left;
  padding:10px 8px;
  font-size:13px;
  vertical-align:top;
}
th{color:#425466;font-weight:600}
code{
  background:#f2f5f8;
  border:1px solid var(--border);
  border-radius:7px;
  padding:3px 6px;
  font-size:12px;
}
.badge{
  display:inline-block;
  border-radius:999px;
  padding:4px 8px;
  font-size:11px;
  font-weight:700;
}
.badge.ativo{background:#dff8eb;color:#055c3f}
.badge.revogado{background:#ffe2e0;color:#7c1f16}
.badge.sync{font-size:10px}
.badge.sync.pendente{background:#fff3cd;color:#7a5612}
.badge.sync.enviado{background:#dff8eb;color:#055c3f}
.badge.sync.erro{background:#ffe2e0;color:#7c1f16}
.inline-form{display:inline-block;margin:2px 2px 2px 0}
.alert{
  border-radius:10px;
  padding:10px 12px;
  border:1px solid var(--border);
  background:#fff;
  font-size:13px;
}
.alert.success{background:#e8fff3;border-color:#b7eccf}
.alert.error{background:#fff0f0;border-color:#f0b8b8}
.muted{color:var(--muted);font-size:13px}
.mini{font-size:11px;margin-top:4px}
@media (max-width:680px){
  .topbar h1{font-size:16px}
  .container{width:94%}
}
