/* auth.css — 登入／註冊 modal（只用 au- 前綴，唔影響其他元素） */
.auth-nav-btn{cursor:pointer;font:inherit;font-weight:700;font-size:.92rem;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.auth-nav-btn.is-in{color:var(--hot);border-color:#c7cff0}
html.au-lock{overflow:hidden}
.au-back{position:fixed;inset:0;z-index:90;background:rgba(15,23,42,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px}
.au-back[hidden]{display:none}
.au-dlg{position:relative;width:min(460px,100%);max-height:calc(100vh - 40px);overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 30px 60px -20px rgba(37,56,120,.4);padding:28px 26px 22px;color:var(--ink)}
.au-x{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}
.au-title{font-size:1.4rem;font-weight:900;margin:0 0 16px;padding-right:40px}
.au-tabs{display:flex;gap:6px;padding:5px;background:var(--soft);border:1px solid var(--line);border-radius:999px;margin-bottom:18px}
.au-tabs[hidden]{display:none}
.au-tabs button{flex:1;border:0;background:transparent;padding:9px 14px;border-radius:999px;font:inherit;font-weight:700;color:var(--muted);cursor:pointer}
.au-tabs button[aria-selected="true"]{background:var(--grad);color:#fff;box-shadow:0 8px 18px -10px rgba(79,70,229,.8)}
.au-form{display:flex;flex-direction:column;gap:12px}
.au-form[hidden],.au-form [hidden]{display:none}
.au-step{margin:0;font-weight:700;color:var(--ink2);font-size:.95rem}
.au-types{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.au-type{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:16px;border-radius:16px;border:2px solid var(--line);background:#fff;color:var(--ink);font:inherit;cursor:pointer;text-align:left;transition:border-color .2s,box-shadow .2s,background .2s}
.au-type b{font-size:1.08rem}
.au-type small{color:var(--muted);font-size:.8rem}
.au-type[aria-checked="true"]{border-color:var(--hot);background:#f5f6ff;box-shadow:0 10px 22px -14px rgba(79,70,229,.7)}
.au-f{display:flex;flex-direction:column;gap:6px;font-size:.9rem;font-weight:700;color:var(--ink2)}
.au-f input{font:inherit;font-weight:400;width:100%;padding:11px 14px;border-radius:12px;border:1px solid var(--line);background:var(--soft);color:var(--ink)}
.au-f input:focus{outline:none;border-color:var(--hot);background:#fff;box-shadow:0 0 0 3px rgba(79,70,229,.15)}
[data-for]{display:flex;flex-direction:column;gap:12px}
.au-pw{position:relative;display:block}
.au-pw input{padding-right:64px}
.au-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--hot);font:inherit;font-size:.82rem;font-weight:700;cursor:pointer;padding:6px}
.au-hints{list-style:none;margin:-4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.8rem;color:var(--muted)}
.au-hints li::before{content:"○ ";}
.au-hints li.ok{color:#059669}
.au-hints li.ok::before{content:"✓ "}
.au-match{margin:-4px 0 0;font-size:.8rem;min-height:1em}
.au-match.ok{color:#059669}.au-match.bad{color:#dc2626}
.au-msg{margin:0;min-height:1.2em;font-size:.88rem;font-weight:700;color:#dc2626}
.au-msg.ok{color:#059669}
.au-msg:empty{display:none}
.au-submit{justify-content:center;width:100%;cursor:pointer;font:inherit;font-weight:700}
.au-submit:disabled{opacity:.6;cursor:wait;transform:none}
.au-acct{margin:0;font-size:1.05rem}
.au-acct small{color:var(--muted)}
.au-note{margin:16px 0 0;font-size:.78rem;color:var(--muted);line-height:1.6}
.au-note a{color:var(--hot);font-weight:700;word-break:break-all}
@media (max-width:820px){
  .auth-nav-btn{max-width:none}
}
@media (max-width:640px){
  .au-back{align-items:flex-end;padding:0}
  .au-dlg{width:100%;border-radius:24px 24px 0 0;max-height:92vh;padding:24px 18px 20px}
  .au-type{padding:14px 12px}
}
