.access-dialog { box-sizing:border-box; width:min(400px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:24px; border:1px solid var(--line); border-radius:18px; background:var(--panel); color:var(--ink); box-shadow:0 18px 70px #0006; }
.access-dialog::backdrop { background:#07141baa; backdrop-filter:blur(4px); }
.access-dialog[open] { animation:access-enter .18s ease-out; }
.access-dialog form { display:grid; gap:18px; }
.access-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.access-heading h2 { margin:0; font-size:22px; }
.access-close { width:44px; height:44px; border:1px solid var(--line); border-radius:50%; color:var(--ink); background:transparent; font-size:26px; cursor:pointer; }
.access-dialog label { display:grid; gap:8px; font-size:14px; }
.access-dialog [hidden] { display:none; }
.access-dialog input { box-sizing:border-box; width:100%; min-height:46px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--panel); color:var(--ink); font:inherit; font-size:16px; }
.access-dialog :focus-visible { outline:3px solid var(--teal); outline-offset:3px; }
.access-dialog .button { width:100%; min-height:46px; font:inherit; cursor:pointer; }
.access-dialog .button:disabled { opacity:.6; cursor:wait; }
.access-error { margin:0; color:var(--ink); font-size:14px; line-height:1.5; }
.access-error:empty { display:none; }
@keyframes access-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion:reduce) { .access-dialog[open] { animation:none; } }
