:root { --qldy-auth-orange:#df813e; --qldy-auth-blue:#16a0ee; --qldy-auth-green:#20ef3e; }
input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear { display:none; width:0; height:0; }
input[type="password"]::-webkit-credentials-auto-fill-button,
input[type="password"]::-webkit-contacts-auto-fill-button { position:absolute; right:0; display:none !important; visibility:hidden; pointer-events:none; }
.qldy-auth-login-button { padding:0; color:#24f34b; border:0; background:transparent; font:inherit; font-weight:bold; cursor:pointer; }
.qldy-auth-login-button:hover { color:#7cff8e; }
.qldy-auth-layer[hidden] { display:none; }
.qldy-auth-layer { position:fixed; z-index:10000; inset:0; display:grid; place-items:center; padding:24px; background:rgba(0,0,0,.82); font-family:"Microsoft YaHei","Noto Sans SC",sans-serif; }
.qldy-auth-open { overflow:hidden; }
.qldy-auth-modal[hidden] { display:none; }
.qldy-auth-modal { position:relative; width:586px; color:#151515; border:1px solid #d98a4b; background:#fff; box-shadow:0 25px 85px rgba(0,0,0,.72); animation:qldy-auth-enter .18s ease-out both; }
.qldy-auth-modal.is-choice { min-height:325px; }
.qldy-auth-modal.is-form { min-height:320px; overflow:visible; }
.qldy-auth-modal.is-phone { min-height:460px; }
.qldy-auth-modal.is-username { min-height:370px; }
.qldy-auth-close { position:absolute; z-index:2; top:8px; right:16px; width:34px; height:34px; padding:0; color:#666; border:0; background:transparent; font:30px/34px Arial,sans-serif; cursor:pointer; }
.qldy-auth-close:hover { color:#df813e; }
.qldy-auth-title { height:66px; margin:0; display:grid; place-items:center; font-size:26px; font-weight:normal; }
.qldy-auth-choice-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; width:376px; margin:30px auto 0; }
.qldy-auth-choice { padding:0; color:#252525; border:0; background:transparent; font-size:20px; cursor:pointer; }
.qldy-auth-choice-icon { width:125px; height:125px; margin:0 auto 9px; display:grid; place-items:center; border:1px solid #999; background:#f5f5f5; transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease; }
.qldy-auth-choice:hover .qldy-auth-choice-icon { border-color:#df813e; box-shadow:0 0 0 2px rgba(223,129,62,.16); transform:translateY(-2px); }
.qldy-auth-choice img { display:block; object-fit:contain; }
.qldy-auth-choice[data-mode="phone"] img { width:57px; height:91px; }
.qldy-auth-choice[data-mode="username"] img { width:73px; height:79px; }
.qldy-auth-form { padding:0 31px 20px; }
.qldy-auth-field { display:block; margin:0 0 14px; font-size:19px; }
.qldy-auth-field > span { display:block; margin-bottom:5px; }
.qldy-auth-input-wrap { position:relative; }
.qldy-auth-field input { width:100%; height:43px; padding:0 24px; color:#151515; border:1px solid #999; border-radius:0; outline:0; background:#f4f4f4; font-size:25px; }
.qldy-auth-field input:focus { border-color:#df813e; box-shadow:0 0 0 2px rgba(223,129,62,.13); }
.qldy-auth-password input { padding-right:66px; }
.qldy-auth-eye { position:absolute; top:0; right:0; width:66px; height:43px; border:0; background-color:transparent; cursor:pointer; }
.qldy-auth-eye,.register-eye,.password-input button { background-image:url("assets/password-eye-hidden.svg"); background-position:center; background-size:36px 28px; background-repeat:no-repeat; transition:opacity .15s ease,transform .15s ease; }
.qldy-auth-eye.is-visible,.register-eye.is-visible,.password-input button.is-visible { background-image:url("assets/password-eye-visible.svg"); }
.qldy-auth-eye:hover,.register-eye:hover,.password-input button:hover { opacity:.68; }
.qldy-auth-eye:focus-visible,.register-eye:focus-visible,.password-input button:focus-visible { outline:2px solid #df813e; outline-offset:-4px; }
.qldy-auth-captcha { min-height:48px; margin:-5px 0 10px 5px; display:flex; align-items:center; gap:13px; }
.qldy-auth-captcha-code { width:142px; height:48px; display:grid; place-items:center; overflow:hidden; color:#275f9d; border:1px solid #cfd7da; background:repeating-linear-gradient(12deg,#eaf0ef 0 2px,#f7faf9 2px 5px); font:italic 36px/1 Georgia,serif; letter-spacing:5px; text-shadow:2px 1px #bcc6c8; user-select:none; }
.qldy-auth-refresh { padding:6px; color:#168fcf; border:0; background:transparent; cursor:pointer; }
.qldy-auth-field > .qldy-auth-sms-row { display:grid; grid-template-columns:minmax(0,1fr) 139px; align-items:center; gap:13px; }
.qldy-auth-sms-row input { min-width:0; }
.qldy-auth-sms-row button { height:43px; color:#fff; border:0; background:#df813e; font-size:17px; font-weight:bold; cursor:pointer; }
.qldy-auth-sms-row button:disabled { opacity:.58; cursor:default; }
.qldy-auth-error { min-height:24px; margin:-2px 7px 3px; color:#e32626; font-size:18px; }
.qldy-auth-error:empty { min-height:0; margin:0; }
.qldy-auth-error[hidden] { display:none; }
.qldy-auth-submit { width:min(238px,100%); height:54px; margin:20px auto 0; padding:0 24px; display:block; color:#fff; border:0; background:#df813e; box-shadow:0 5px 14px rgba(168,83,25,.2); font-size:22px; font-weight:bold; cursor:pointer; transition:filter .15s ease,transform .15s ease,box-shadow .15s ease; }
.qldy-auth-submit:active { transform:translateY(1px); box-shadow:0 2px 7px rgba(168,83,25,.2); }
.qldy-auth-submit:focus-visible { outline:3px solid rgba(223,129,62,.35); outline-offset:3px; }
.qldy-auth-submit:hover,.qldy-auth-sms-row button:hover:not(:disabled) { filter:brightness(1.08); }
.qldy-auth-submit:disabled { opacity:.62; cursor:wait; }
.qldy-auth-switch { position:absolute; top:calc(100% + 27px); left:50%; display:block; width:max-content; margin:0; padding:0; color:#20ef3e; border:0; border-bottom:1px solid currentColor; background:transparent; font-size:23px; font-weight:bold; cursor:pointer; transform:translateX(-50%); }
.qldy-auth-register { display:block; width:max-content; margin:22px auto 15px; color:#16a0ee; border:0; border-bottom:1px solid currentColor; background:transparent; font-size:19px; cursor:pointer; }
.qldy-auth-account { display:flex; align-items:center; gap:10px; }
.qldy-auth-message-link { display:flex; align-items:center; gap:10px; color:inherit; text-decoration:none; }
.qldy-auth-message-link:hover { color:#ff9b3d; }
.qldy-auth-message-link .message-indicator { position:relative; width:28px; height:32px; display:block; flex:0 0 28px; }
.qldy-auth-message-link .message-indicator img { display:block; width:28px; height:32px; object-fit:contain; }
.qldy-auth-message-link .message-indicator.has-unread::after { content:""; position:absolute; top:-3px; right:-4px; width:11px; height:11px; border:2px solid #1b1c1d; border-radius:50%; background:#ff2630; }
.qldy-role-badge { min-width:62px; padding:2px 11px; display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; color:#07121d; border-radius:16px; background:#5ba9f6; font-size:17px; font-weight:700; line-height:1.35; text-align:center; white-space:nowrap; }
.qldy-role-badge.qldy-role-moderator { color:#2e0738; background:#d20de8; }
.qldy-role-badge.qldy-role-admin { color:#07340b; background:#19dc2a; }
.qldy-role-badge.qldy-role-user { color:#0a3157; background:#5ba9f6; }
.qldy-auth-account i { height:37px; margin:0 8px; border-left:1px solid currentColor; }
.qldy-auth-account .qldy-auth-logout { margin-left:55px; color:#1fbaff; cursor:pointer; }
.qldy-auth-toast { position:fixed; z-index:10001; left:50%; bottom:42px; min-width:260px; padding:14px 26px; color:#fff; border-left:4px solid #ff8a13; background:rgba(22,22,22,.95); box-shadow:0 10px 28px rgba(0,0,0,.35); text-align:center; opacity:0; pointer-events:none; transform:translate(-50%,20px); transition:.2s ease; }
.qldy-auth-toast.is-visible { opacity:1; transform:translate(-50%,0); }
@keyframes qldy-auth-enter { from { opacity:0; transform:translateY(12px) scale(.985); } }
@media (max-width:700px) { .qldy-auth-layer { padding:24px 40px; }.qldy-auth-modal { width:100%; max-width:586px; }.qldy-auth-form { padding-right:clamp(16px,5vw,31px); padding-left:clamp(16px,5vw,31px); }.qldy-auth-choice-grid { width:min(376px,80%); gap:30px; } }
