/* 登录 / 注册二合一弹窗（partials/auth-sheet.hbs + assets/auth.js）。手机：底部抽屉；桌面：居中小纸片。 */
.auth-lock,.auth-lock body{overflow:hidden}
.auth{position:fixed;inset:0;z-index:3999999;display:flex;align-items:center;justify-content:center;font-family:var(--f-ui)}
.auth[hidden]{display:none}
.auth-scrim{position:absolute;inset:0;background:rgba(20,19,17,.38);opacity:0;transition:opacity .2s}
.auth-panel{position:relative;box-sizing:border-box;width:min(400px,calc(100vw - 32px));margin:0;padding:34px 30px 28px;background:var(--sheet);color:var(--text);border:1px solid var(--rule);border-radius:14px;box-shadow:0 18px 48px rgba(20,19,17,.16);opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s}
.auth.on .auth-scrim{opacity:1}
.auth.on .auth-panel{opacity:1;transform:none}
.auth-step{margin:0}
.auth-step[hidden]{display:none}
.auth h2{margin:0 0 8px;font-family:var(--f-zh);font-size:22px;font-weight:600;line-height:1.3;letter-spacing:.02em;color:var(--head)}
.auth-sub{margin:0 0 22px;font-size:15px;line-height:1.65;color:var(--soft)}
.auth-sub b{color:var(--head);font-weight:500;word-break:break-all}
.auth-label{display:block;margin:0 0 6px;font-size:12.5px;letter-spacing:.06em;color:var(--faint)}
.auth-input{display:block;box-sizing:border-box;width:100%;min-height:48px;padding:0 14px;border:1px solid var(--rule);border-radius:10px;background:var(--ground);color:var(--head);font:inherit;font-size:16px;outline:none;transition:border-color .15s,box-shadow .15s}
.auth-input:focus{border-color:var(--head);box-shadow:0 0 0 3px rgba(245,191,7,.35)}
.auth-input::placeholder{color:var(--faint);opacity:.7}
.auth-code{font-variant-numeric:tabular-nums;font-size:24px;letter-spacing:.42em;text-align:center;padding-left:calc(14px + .42em)}
.auth-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.auth-hint{margin:10px 0 0;font-size:13px;line-height:1.6;color:var(--faint)}
.auth-err{min-height:1.6em;margin:8px 0 6px;font-size:13.5px;line-height:1.6;color:#9B3B22}
.auth-err:empty{min-height:0;margin:6px 0 4px}
.auth-go{width:100%;margin-top:6px}
.auth-go:disabled{opacity:.55;cursor:default}
.auth-go.busy{cursor:progress}
.auth-links{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:16px;font-size:13.5px;color:var(--faint)}
.auth-link{appearance:none;border:0;background:none;padding:6px 2px;min-height:32px;font:inherit;color:var(--soft);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:3px;cursor:pointer}
.auth-link:hover{color:var(--head);text-decoration-color:var(--head)}
.auth-link:disabled{color:var(--faint);text-decoration:none;cursor:default}
.auth-x{position:absolute;top:10px;right:10px;width:36px;height:36px;border:0;border-radius:999px;background:none;color:var(--faint);font-size:22px;line-height:1;cursor:pointer}
.auth-x:hover{background:var(--ground);color:var(--head)}
.auth-toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));z-index:4000000;margin:0;padding:10px 18px;border-radius:999px;background:var(--head);color:var(--ground);font-family:var(--f-ui);font-size:14px;transform:translate(-50%,8px);opacity:0;transition:opacity .25s,transform .25s;pointer-events:none}
.auth-toast.on{opacity:1;transform:translate(-50%,0)}
@media (max-width:560px){
  .auth{align-items:flex-end}
  .auth-panel{width:100%;border-radius:16px 16px 0 0;border-width:1px 0 0;padding:30px 22px calc(22px + env(safe-area-inset-bottom));transform:translateY(24px)}
}
