/* Auth/account composition. Values come only from the published design tokens. */
.public-page{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto;background:var(--surface-page)}
.public-head,.public-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:var(--topbar-h);padding:0 var(--space-6);background:var(--white);border-bottom:1px solid var(--border-hairline)}
.public-foot{min-height:var(--statusbar-h);border-top:1px solid var(--border-hairline);border-bottom:0;font-family:var(--font-mono);font-size:var(--text-3xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-secondary)}
.wordmark{font-family:var(--font-display);font-size:var(--text-md);color:var(--text-primary);text-decoration:none;white-space:nowrap}
.wordmark:hover{color:var(--text-primary)}
.public-page h1{font-size:var(--text-2xl)}
.auth-main{width:min(100% - (2 * var(--space-6)),760px);margin:auto;padding:var(--space-8) 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,1fr);gap:var(--space-7);align-items:start}
.auth-intro{display:flex;flex-direction:column;gap:var(--space-4);padding-top:var(--space-5)}
.auth-intro p{color:var(--text-secondary);max-width:var(--layout-prose)}
.auth-card{background:var(--surface-card);border:1px solid var(--border-hairline)}
.auth-card__head{padding:var(--space-5);border-bottom:1px solid var(--border-hairline)}
.auth-card__head h2{font-size:var(--text-lg);margin-top:4px}
.auth-form{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5)}
.auth-form .field__control:not(.field__control--area){height:var(--control-h-lg)}
/* The form is a column flex, so a submit button stretches to the full field width unless
   told otherwise. Only the sign-in button opts into that, via .btn--block. */
.auth-form .btn{margin-top:var(--space-2)}
.auth-form .btn:not(.btn--block){align-self:flex-start}
.error-main{width:min(100% - (2 * var(--space-6)),var(--layout-prose));margin:auto;padding:var(--space-8) 0;display:flex;flex-direction:column;gap:var(--space-5)}
.session-list{list-style:none;margin:0;padding:0}
.session-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-4);align-items:center;padding:var(--space-4);border-bottom:1px solid var(--border-subtle)}
.session-row:last-child{border-bottom:0}
.session-data{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px var(--space-5);font-family:var(--font-mono);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;color:var(--text-secondary)}
.session-data strong{grid-column:1/-1;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-medium)}
.account-summary{display:flex;flex-direction:column;gap:var(--space-3);font-size:var(--text-sm)}
.account-summary dt{font-family:var(--font-mono);font-size:var(--text-3xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-secondary)}
.account-summary dd{margin:2px 0 var(--space-3)}
.empty-state{padding:var(--space-5);color:var(--text-secondary);font-size:var(--text-sm)}
@media(max-width:760px){.auth-main{grid-template-columns:1fr}.auth-main{padding:var(--space-6) 0}.session-row{grid-template-columns:1fr}.session-data{grid-template-columns:1fr}.public-head,.public-foot{padding-left:var(--space-4);padding-right:var(--space-4)}}
