html { min-height:100%; }
body.sx { min-height:100dvh; margin:0; padding:32px 20px; display:grid; place-items:center; box-sizing:border-box; }
.private-login { width:min(100%,400px); box-sizing:border-box; padding:36px; background:var(--sx-surface); border:var(--sx-card-border); border-radius:24px; box-shadow:var(--sx-card-shadow); }
.private-brand { display:flex; align-items:center; gap:10px; font-size:28px; font-weight:600; letter-spacing:-1px; margin-bottom:32px; }
.private-login h1 { font-size:25px; line-height:1.25; margin:0 0 10px; }
.private-sub { color:var(--sx-muted-2); font-size:14px; line-height:1.6; margin:0 0 26px; }
.private-login label { display:block; font-size:14px; margin:18px 0 8px; }
.private-login input { display:block; width:100%; box-sizing:border-box; min-height:46px; padding:12px; border:1px solid var(--sx-line,#ddd); border-radius:10px; color:var(--sx-text); background:var(--sx-surface); font:inherit; }
.private-login input:focus-visible { outline:2px solid var(--sx-accent); outline-offset:2px; }
.private-login button { display:flex; align-items:center; justify-content:center; width:100%; min-height:48px; margin-top:26px; padding:12px 16px; border:0; border-radius:12px; background:var(--sx-accent); color:white; font-family:inherit; font-size:15px; font-weight:600; line-height:1.4; cursor:pointer; }
.private-login button:disabled { opacity:.65; cursor:wait; }
#private-error { padding:12px; border-radius:10px; background:#fae8e3; color:#9c3228; font-size:14px; line-height:1.5; }
#private-status { color:var(--sx-muted-2); font-size:14px; line-height:1.5; }
[hidden] { display:none !important; }
@media(max-width:420px) { .private-login { padding:28px 24px; } }
