/* Portal-only layout, on top of the app's app.css. Tokens from docs/07 only: no new colours or fonts. */

.login-card { width: 360px; align-items: stretch; }
.login-card .brand-logo { margin: 0 auto; }
.login-card h1, .login-card > p { text-align: center; }
.login-card > p { margin: 0; }
.login-form, .stack { display: flex; flex-direction: column; gap: 12px; }

.toolbar .select { height: 30px; font-size: 12.5px; }
.btn.danger { color: var(--red); border-color: var(--red-bg); }
.btn.danger:hover { background: var(--red-bg); }
.input.file { height: auto; padding: 6px 10px; }

.key-banner > div { display: flex; flex-direction: column; gap: 6px; }
.licence-key { font-family: var(--font); font-size: 18px; font-weight: 600; letter-spacing: .08em; color: var(--text); user-select: all; }
code { font-family: var(--font); font-weight: 500; }
.table th, .table td.nowrap { white-space: nowrap; }
.table .toolbar { flex-wrap: nowrap; align-items: center; gap: 8px; }
.table .btn { white-space: nowrap; }
.table.two-line td { height: 48px; } /* docs/07: 46–50 when a cell has two lines */
.table .toolbar .select { max-width: 220px; }
