/* Compact login form; colors and typography follow the current public theme. */
html.member-login-open { overflow:hidden; padding-inline-end:var(--member-login-scrollbar-gap,0px); }
.member-login-dialog { box-sizing:border-box; width:min(400px,calc(100vw - 32px)); max-width:none; max-height:calc(100dvh - 32px); margin:auto; padding:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; border:1px solid var(--line); border-radius:16px; background:var(--surface); color:var(--text); font:inherit; box-shadow:var(--shadow); }
.member-login-dialog::backdrop { background:color-mix(in srgb,var(--page) 65%,transparent); }
.member-login-panel { padding:24px; }
.member-login-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.member-login-heading h2 { margin:0; padding:0; color:inherit; font-size:22px; line-height:1.5; letter-spacing:0; }
.member-login-heading h2::before { content:none; }
.member-login-dialog button,.member-login-dialog a { font:inherit; cursor:pointer; }
.member-login-dialog .member-login-close { display:grid; place-items:center; flex:none; width:44px; height:44px; padding:0; border:0; border-radius:8px; color:var(--text-muted); background:transparent; }
.member-login-dialog label { display:block; margin:16px 0 8px; color:inherit; font-size:13px; line-height:1.6; }
.member-login-dialog input { box-sizing:border-box; display:block; width:100%; min-width:0; min-height:48px; margin:0; padding:11px 12px; border:1px solid var(--line); border-radius:8px; background:var(--page); color:inherit; font:inherit; font-size:16px; line-height:1.5; }
.member-login-dialog input:focus { outline:2px solid var(--accent); outline-offset:-1px; }
.member-login-dialog input[aria-invalid=true] { border-color:var(--text); }
.member-login-dialog input[readonly] { opacity:.65; }
.member-login-dialog button:focus-visible,.member-login-dialog a:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.member-login-dialog button:active:not(:disabled),.member-login-dialog a:active { opacity:.8; }
.member-login-dialog button:disabled { opacity:.5; cursor:not-allowed; }
.member-login-dialog .member-login-submit { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:44px; padding:10px 14px; border:0; border-radius:8px; background:var(--accent); color:var(--accent-ink); font-size:14px; font-weight:650; line-height:1.5; white-space:nowrap; }
.member-login-dialog [aria-busy=true] .member-login-submit::before { content:''; width:13px; height:13px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:member-login-spin .7s linear infinite; }
.member-login-status { min-height:21px; margin:10px 0 14px; color:var(--text-muted); font-size:12px; line-height:1.75; overflow-wrap:anywhere; }
.member-login-status[data-state=error] { color:var(--text); }
.member-login-dialog .member-login-verification { display:block; margin:-4px 0 14px; color:var(--accent); font-size:12px; line-height:1.75; }
.member-login-dialog [hidden] { display:none; }
.member-login-links { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:16px; }
.member-login-links a { display:inline-flex; align-items:center; min-height:44px; color:var(--text-muted); font-size:13px; white-space:nowrap; }
.member-login-links a:first-child { color:var(--accent); }
@media (hover:hover) {
    .member-login-dialog .member-login-close:hover { color:var(--text); background:var(--surface-soft); }
    .member-login-dialog .member-login-submit:hover:not(:disabled) { filter:brightness(.95); }
    .member-login-links a:hover { color:var(--accent); }
}
@media (max-width:480px) { .member-login-panel { padding:18px 20px; } }
@media (max-height:500px) { .member-login-dialog { max-height:calc(100dvh - 16px); } .member-login-panel { padding-block:12px; } .member-login-heading { margin-bottom:6px; } }
@keyframes member-login-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .member-login-dialog [aria-busy=true] .member-login-submit::before { animation:none; } }
