/* Fit common desktop viewports without hiding content or changing browser zoom. */
body { min-height:100dvh; display:flex; flex-direction:column; }
header, footer, main { width:100%; }
header { padding:12px 28px; }
footer { padding:10px 28px; margin-top:auto; }
main { flex:1; min-height:0; padding:16px 28px; }
.welcome { padding:0; gap:48px; min-height:100%; }
.intro h1 { font-size:clamp(36px,4vw,52px); margin-bottom:18px; }
.intro .eyebrow { margin-bottom:12px; }
.lead { font-size:17px; line-height:1.7; }
.features { margin-top:24px; }
.login { padding:20px 24px; }
.login .chip { margin-bottom:8px; font-size:12px; padding:2px 10px; }
.login h2 { margin-bottom:6px; }
.login > p { font-size:14px; margin-bottom:8px; }
.auth-form { margin:14px 0 10px; gap:10px; }
.auth-form label { gap:4px; }
.auth-form input { min-width:0; height:40px; padding:7px 10px; font-size:16px; }
.auth-form button { min-height:40px; padding:8px 14px; }
.auth-links { margin:8px 0; }
.auth-divider { margin:10px 0 0; }
.login .google-button { margin:10px 0; min-height:42px; padding:8px 14px; }
.login > small { display:block; font-size:12px; line-height:1.5; }
.account { max-width:800px; padding:16px 24px; }
.account .eyebrow { margin-bottom:4px; }
.account h1 { font-size:28px; margin-bottom:6px; }
.account > p { font-size:14px; margin-bottom:8px; }
.account .notice { margin:10px 0; padding:8px 12px; line-height:1.5; }
.account .auth-form { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; column-gap:20px; row-gap:8px; margin:10px 0 8px; }
.account .auth-form > button, .account .auth-form > p { grid-column:1/-1; }
.account .auth-form > p { margin:0; font-size:13px; }
.account .auth-form[action="/auth/password/register"] > label:nth-of-type(3) { grid-column:1/-1; }
.account .auth-form small { line-height:1.4; }
.account > a { font-size:14px; }
@media (max-width:850px) {
  .welcome { gap:20px; }
  .intro h1 { font-size:32px; margin-bottom:8px; }
  .intro h1 br, .lead br { display:none; }
  .intro .lead { margin-bottom:0; }
  .features { margin-top:8px; }
  .login { max-width:none; }
}
@media (max-width:600px) {
  header,footer { padding:10px 16px; }
  main { padding:16px; }
  .account,.login { padding:18px; }
  .account .auth-form { grid-template-columns:minmax(0,1fr); }
  .intro h1 { font-size:28px; }
  .welcome { gap:16px; }
}
