/* Public sign-in has its own frame and shares workspace color and type tokens. */
html { min-height:100%; }
body.login-page { display:block; height:auto; min-height:100dvh; margin:0; overflow:auto; background:var(--bg); color:var(--text); font-family:var(--sans); font-size:var(--font-base); line-height:1.6; -webkit-font-smoothing:antialiased; }
.login-page *, .login-page *::before, .login-page *::after { box-sizing:border-box; }
.login-page [hidden] { display:none !important; }
.login-page :is(h1,h2,p) { margin:0; }
.login-page svg { display:block; flex:none; }
.login-page main.login-layout { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); min-height:100dvh; overflow:visible; }
.login-brand-panel { display:flex; flex-direction:column; justify-content:space-between; gap:var(--space-8); padding:clamp(var(--space-6),5vw,calc(var(--space-8) * 2)); background:var(--panel); border-right:var(--border-width) solid var(--border); }
.login-wordmark { display:flex; align-items:center; gap:var(--space-3); font-size:var(--font-xl); font-weight:800; letter-spacing:-.065em; line-height:1; }
.login-wordmark svg { width:var(--space-5); height:var(--space-5); stroke:var(--accent); stroke-width:2; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.login-introduction { padding-block:var(--space-8); }
.login-page .login-eyebrow { margin-bottom:var(--space-5); color:var(--faint); font-size:var(--font-xs); font-weight:650; letter-spacing:.12em; text-transform:uppercase; }
.login-page .login-statement, .login-page .login-statement-mobile { font-size:var(--font-display); line-height:1.12; font-weight:500; letter-spacing:-.055em; text-wrap:balance; }
.login-page .login-statement-mobile { display:none; }
.login-page .login-description { max-width:37ch; margin-top:var(--space-6); color:var(--dim); font-size:var(--font-base); line-height:1.8; }
.login-brand-footer { display:flex; justify-content:space-between; align-items:end; gap:var(--space-6); padding-top:var(--space-6); border-top:var(--border-width) solid var(--border); color:var(--dim); font-size:var(--font-sm); }
.login-brand-footer svg { width:var(--space-8); height:var(--space-8); stroke:var(--accent); stroke-width:1.3; fill:none; }
.login-access-panel { position:relative; display:flex; align-items:center; justify-content:center; min-width:0; padding:calc(var(--space-8) * 2) var(--space-8); }
.login-access { width:min(100%,25rem); }
.login-access-heading { margin-bottom:var(--space-7); }
.login-page .login-access-heading .login-eyebrow { margin-bottom:var(--space-3); color:var(--accent-ink); }
.login-page h1 { font-size:var(--font-xl); font-weight:550; line-height:1.25; letter-spacing:-.045em; }
.login-page #subtitle { margin-top:var(--space-3); color:var(--dim); }
.login-page .login-primary { display:flex; align-items:center; justify-content:center; gap:var(--space-3); width:100%; min-height:var(--space-8); padding:var(--space-3) var(--space-5); border:var(--border-width) solid transparent; border-radius:calc(var(--radius-card) / 2); background:var(--accent-solid); color:var(--on-accent); font:inherit; font-weight:650; cursor:pointer; touch-action:manipulation; transition:background-color .15s ease, box-shadow .15s ease; }
.login-page .login-primary svg { width:var(--space-5); height:var(--space-5); fill:currentColor; }
.login-page .login-primary:hover:not(:disabled) { background:var(--accent); box-shadow:var(--shadow); }
.login-page .login-primary:disabled { opacity:.5; cursor:default; }
.login-page :is(button,input):focus-visible { outline:calc(var(--border-width) * 2) solid var(--accent); outline-offset:var(--space-1); }
.login-page .remember { display:flex; align-items:center; gap:var(--space-3); min-height:var(--space-8); margin-bottom:var(--space-4); cursor:pointer; }
.login-page .remember input { width:var(--space-5); height:var(--space-5); margin:0; flex:none; accent-color:var(--accent-solid); }
.login-page .remember-note { margin-top:var(--space-4); color:var(--dim); font-size:var(--font-sm); }
.login-page .msg { min-height:1.6em; margin-top:var(--space-4); color:var(--dim); font-size:var(--font-sm); overflow-wrap:anywhere; }
.login-page .msg.bad { color:var(--redFg); }
.login-access-note { display:flex; align-items:flex-start; gap:var(--space-3); margin-top:var(--space-5); padding-top:var(--space-5); border-top:var(--border-width) solid var(--border); color:var(--faint); font-size:var(--font-sm); }
.login-access-note svg { width:var(--space-4); height:var(--space-4); margin-top:var(--space-1); fill:none; stroke:currentColor; stroke-width:1.6; }
.login-page .login-footnote { position:absolute; bottom:var(--space-6); color:var(--faint); font-size:var(--font-xs); }
/* Below 760px: one column, a shorter brand statement, then sign-in controls. */
@media (max-width:760px) {
  .login-page main.login-layout { grid-template-columns:minmax(0,1fr); }
  .login-brand-panel { gap:var(--space-7); padding:var(--space-6); border-right:0; border-bottom:var(--border-width) solid var(--border); }
  .login-introduction { padding:0; }
  .login-page .login-statement, .login-introduction .login-eyebrow, .login-brand-footer { display:none; }
  .login-page .login-statement-mobile { display:block; font-size:var(--font-xl); }
  .login-page .login-description { max-width:42ch; margin-top:var(--space-3); font-size:var(--font-sm); }
  .login-access-panel { flex-direction:column; gap:var(--space-8); padding:var(--space-7) var(--space-6); }
  .login-access { width:min(100%,25rem); }
  .login-page .login-footnote { position:static; }
}
@media (prefers-reduced-motion:reduce) { .login-page .login-primary { transition:none; } }
