/* ============================================================ * 21. 弹窗登录/注册 — 1:1 Zibll modal * ============================================================ */ .aksrt-modal-auth { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: opacity 0.3s, visibility 0.3s; padding: 10px; } .aksrt-modal-auth.is-open { opacity: 1; visibility: visible; } .aksrt-modal-auth__overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.4); backdrop-filter: none; -webkit-backdrop-filter: none; } .aksrt-modal-auth__card { position: relative; background: var(--main-bg-color, var(--surface-1, #fff)); border-radius: var(--main-radius, 8px); border: none; padding: 0; max-width: 400px; width: 100%; max-height: calc(100vh - 20px); overflow: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch; box-shadow: 0 0 10px var(--main-shadow, rgba(116, 116, 116, 0.08)); z-index: 1; transform: scale(0.9); transition: transform 0.5s cubic-bezier(0.32, 0.85, 0.45, 1.18), width 0.3s; } .aksrt-modal-auth.is-open .aksrt-modal-auth__card { transform: scale(1); } .aksrt-modal-auth__header { position: relative; text-align: center; margin: 0; padding: 28px 24px 16px; min-height: 120px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: var(--main-radius, 8px) var(--main-radius, 8px) 0 0; overflow: hidden; color: #fff; background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-active, #c9206d) 100%); } .aksrt-modal-auth__header::before, .aksrt-modal-auth__header::after { content: ' '; position: absolute; border-radius: 100%; background: rgba(255, 255, 255, 0.12); pointer-events: none; } .aksrt-modal-auth__header::before { width: 220px; height: 220px; right: -60px; top: -80px; } .aksrt-modal-auth__header::after { width: 160px; height: 160px; left: -40px; bottom: -70px; opacity: 0.5; } .aksrt-modal-auth__close { position: absolute; top: 10px; right: 10px; width: auto; height: auto; min-width: 28px; min-height: 28px; border: none; border-radius: 0; background: transparent; color: #fff; opacity: 0.6; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: opacity 0.2s; font-size: 18px; z-index: 9; padding: 4px; } .aksrt-modal-auth__close:hover { opacity: 1; background: transparent; } .aksrt-modal-auth__logo { position: relative; z-index: 1; width: 56px; height: 56px; border-radius: 50%; background: rgba(255, 255, 255, 0.18); color: #fff; font-size: 18px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0 auto 10px; border: 2px solid rgba(255, 255, 255, 0.35); } .aksrt-modal-auth__title { position: relative; z-index: 1; margin: 0; font-size: 16px; font-weight: normal; color: #fff; } .aksrt-modal-auth__tabs, .aksrt-modal-auth__panel, .aksrt-modal-auth__body { padding-left: 20px; padding-right: 20px; } .aksrt-modal-auth__panel { padding-bottom: 20px; } .aksrt-modal-auth.bottom { align-items: flex-end; } .aksrt-modal-auth.bottom .aksrt-modal-auth__card { max-width: calc(100% - 20px); margin-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); transform: translateY(110%); transition: transform 0.4s; border-radius: var(--main-radius, 8px); box-shadow: 0 -10px 50px rgba(0, 0, 0, 0.15); } .aksrt-modal-auth.bottom.is-open .aksrt-modal-auth__card { transform: translateY(0); transition: transform 0.6s cubic-bezier(0.28, 0.9, 0.34, 0.99); } .modal-content, .aksrt-modal__content { border-radius: var(--main-radius, 8px); background: var(--main-bg-color, var(--surface-1)); border: none; box-shadow: 0 0 10px var(--main-shadow, rgba(116, 116, 116, 0.08)); } .modal-colorful-header { border-radius: var(--main-radius, 8px) var(--main-radius, 8px) 0 0; position: absolute; left: 0; right: 0; top: 0; height: 120px; display: flex; align-items: center; justify-content: center; color: var(--this-color, #fff); background: var(--this-bg, var(--focus-color, var(--color-primary))); overflow: hidden; } .modal-colorful-header + * { margin-top: 120px; } .modal-colorful-header > .close { position: absolute; right: 10px; top: 10px; color: var(--this-color, #fff); opacity: 0.6; font-size: 18px; z-index: 9; }