/* IAM-only rules. Shared look: /assets/abstech/abstech.css. Use --ab- tokens; no hex values. */

/* Forms here put label and control straight in the form, without ab-field. */
form > label { margin-top: var(--ab-space-4); }
form > label:first-of-type { margin-top: var(--ab-space-2); }
form > input + .ab-hint { margin-bottom: 0; }
form > button[type=submit]:not(.ab-btn--link), form > .ab-btn--block { margin-top: var(--ab-space-4); }
.ab-btn--block + .ab-btn--block, .ab-btn--block + a.ab-btn--block { margin-top: var(--ab-space-2); }

/* A form laid out in one wrapping line: fields grow, buttons keep their size. */
.row { display: flex; flex-wrap: wrap; gap: var(--ab-space-2); align-items: end; margin-bottom: 0; }
.row > * { flex: 1 1 10rem; }
.row > button, .row > .ab-btn { flex: 0 0 auto; }
.row label { margin-top: 0; }
.inline { display: inline; margin: 0; }

/* "or" between password sign-in and the other methods. */
.divider { display: flex; align-items: center; gap: var(--ab-space-3); margin: var(--ab-space-5) 0 var(--ab-space-4); color: var(--ab-muted); font-size: var(--ab-text-sm); }
.divider::before, .divider::after { content: ""; flex: 1; border-top: 1px solid var(--ab-line); }

/* Secrets and links shown once, for copying. */
code.copy { display: block; padding: var(--ab-space-3); background: var(--ab-bg); border: 1px solid var(--ab-line); border-radius: var(--ab-radius-sm); word-break: break-all; }

/* Tables sit inside cards: no second box around them. */
.ab-card .ab-table-wrap { border: 0; border-radius: 0; background: none; }
.ab-card td form { margin: 0; }

.ab-page > h1 { margin-bottom: var(--ab-space-5); }
[hidden] { display: none !important; }
