.login-card h2 { font-size: 18px; margin: 6px 0 6px; }
.login-brand { color: var(--ink); font-size: 18px; margin-bottom: 8px; }
.login-card .lead { margin-top: 0; }
.login-card hr { border: 0; border-top: 1px solid var(--line); margin: 18px 0 10px; }
.login-card .hint { margin: 8px 0 0; text-align: center; }
button.wide, .btn.wide, input.wide { width: 100%; }
button.big, .btn.big { padding: 12px 16px; font-size: 15px; display: flex; gap: 8px; align-items: center; justify-content: center; }
.btn.wide { text-align: center; }
.key-icon { width: 18px; height: 18px; display: inline-block; background: currentColor; -webkit-mask: var(--key) center / contain no-repeat; mask: var(--key) center / contain no-repeat;
  --key: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 14a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm5.65-4A6 6 0 1 0 12.65 14H15v3h3v-3h2v-4h-7.35z'/%3E%3C/svg%3E"); }
.grant-list { list-style: none; padding: 0; margin: 10px 0 14px; }
.grant-list li { padding: 6px 0; border-bottom: 1px solid var(--line); }
.grant-line { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 4px; }
form.inline { display: inline; }
.grant-table td { padding: 4px 6px 4px 0; border: 0; }
.grant-table th { background: transparent; padding-left: 0; }
.grant-table input, .grant-table select { width: 100%; }
.invite-link { background: var(--ok-bg); border-radius: 8px; padding: 10px 12px; margin-bottom: 14px; display: grid; gap: 6px; }
td.actions form { margin-bottom: 4px; }
.users td { min-width: 150px; }
code { background: var(--muted-bg); padding: 1px 5px; border-radius: 4px; font-size: 12px; }
@media (max-width: 640px) {
  .topbar .inner { flex-wrap: wrap; height: auto; padding-top: 8px; padding-bottom: 6px; }
}
