:root { color-scheme: light; font-family: Inter, system-ui, sans-serif; color: #172033; background: #f5f7fb; }
* { box-sizing: border-box; }
body { margin: 0; }
header { display: flex; align-items: center; gap: 1rem; padding: 1rem max(1rem, calc((100vw - 1100px) / 2)); background: #172033; color: #fff; }
header a { color: #fff; font-weight: 700; margin-right: auto; text-decoration: none; }
header form { margin: 0; }
main { max-width: 1100px; margin: 2rem auto; padding: 0 1rem; }
.auth-page { display: grid; min-height: 100vh; place-items: center; }
.auth-card { width: min(100% - 2rem, 460px); margin: 1rem; padding: 2rem; background: #fff; border-radius: .75rem; box-shadow: 0 12px 38px #18233a1a; }
form { display: grid; gap: 1rem; }
label { display: grid; gap: .35rem; font-weight: 600; }
input, select, textarea, button { font: inherit; padding: .6rem .7rem; border: 1px solid #b8c3d8; border-radius: .35rem; }
textarea { min-height: 5rem; }
button, .button { display: inline-block; width: fit-content; border-color: #1e5aa8; background: #1e5aa8; color: #fff; cursor: pointer; text-decoration: none; }
fieldset { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .75rem; border: 1px solid #d4dbea; border-radius: .5rem; }
legend { font-weight: 700; }
table { width: 100%; border-collapse: collapse; background: #fff; }
th, td { padding: .75rem; border-bottom: 1px solid #e1e6f0; text-align: left; vertical-align: top; }
.filters { display: flex; flex-wrap: wrap; align-items: end; margin-bottom: 1rem; }
.filters label { flex: 1 1 220px; }
.error { padding: .75rem; color: #8c1721; background: #fff0f1; border-radius: .35rem; }
.notice { padding: .75rem; color: #155e3b; background: #edfff5; border-radius: .35rem; }
.status { font-family: ui-monospace, monospace; font-size: .85rem; }
.details { display: grid; grid-template-columns: 180px 1fr; gap: .5rem 1rem; }
.details dt { font-weight: 700; }
.details dd { margin: 0; }
.qr { width: 220px; height: 220px; image-rendering: pixelated; }
.secret code, .recovery-codes code { overflow-wrap: anywhere; }
.recovery-codes { columns: 2; }
@media (max-width: 700px) { header { flex-wrap: wrap; } table { display: block; overflow-x: auto; } .details { grid-template-columns: 1fr; gap: .15rem; } }
