/* 顶见 · 账号体系共享样式(index / author / institution 共用;依赖各页 :root 的 --red 等变量) */
.userbar{display:flex;align-items:center;gap:8px;font-size:13.5px;position:relative;flex:none}
.userbar .ubtn{cursor:pointer;color:var(--red);font-weight:600;padding:7px 15px;border:1px solid #e3c9c4;background:var(--redbg);border-radius:9px;white-space:nowrap}
.userbar .ufav{cursor:pointer;color:#56524c;padding:7px 11px;border-radius:8px;white-space:nowrap}
.userbar .ufav:hover{background:#f1eee8}
.userbar .uemail{cursor:pointer;color:var(--mut);padding:7px 8px;border-radius:8px;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}
.userbar .uemail:hover{background:#f1eee8}
.userbar .umenu{position:absolute;top:42px;right:0;background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 6px 24px rgba(0,0,0,.1);overflow:hidden;z-index:60;min-width:140px}
.userbar .umenu div{padding:11px 16px;cursor:pointer;font-size:14px;color:var(--ink)}
.userbar .umenu div:hover{background:#f6f3ee}
.modal{position:fixed;inset:0;background:rgba(40,38,34,.42);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}
.modal-card{background:#fff;border-radius:18px;padding:26px 26px 22px;max-width:382px;width:100%;position:relative;box-shadow:0 12px 50px rgba(0,0,0,.2)}
.modal-x{position:absolute;top:14px;right:16px;color:var(--mut);cursor:pointer;font-size:17px;line-height:1}
.modal-title{font-size:19px;font-weight:600;margin-bottom:5px}
.modal-sub{color:var(--mut);font-size:13px;margin-bottom:18px;line-height:1.6}
.lg-input{width:100%;height:46px;border:1px solid var(--line);border-radius:11px;padding:0 15px;font-size:16px;outline:none;margin-bottom:11px}
.lg-input:focus{border-color:#c9c3b8}
.lg-btn{width:100%;height:46px;border:0;border-radius:11px;background:var(--red);color:#fff;font-size:15.5px;font-weight:600;cursor:pointer}
.lg-btn:active{opacity:.9}
.lg-to{font-size:13.5px;color:#56524c;margin-bottom:11px}
.lg-resend{margin-top:12px;text-align:center;font-size:13px}
.lg-msg{margin-top:12px;font-size:13px;color:var(--mut);min-height:18px;text-align:center}
.favbtn{cursor:pointer;color:#b0726a;font-size:13px;padding:3px 12px;border-radius:8px;border:1px solid #ecd9d5;white-space:nowrap;user-select:none;display:inline-block;box-shadow:0 0 0 3px rgba(163,45,45,.06);transition:box-shadow .2s,color .15s,border-color .15s}
.favbtn:hover{border-color:#e3c9c4;color:var(--red);box-shadow:0 0 0 5px rgba(163,45,45,.13)}
.favbtn.on{color:var(--red);background:var(--redbg);border-color:#e3c9c4;font-weight:600;box-shadow:0 0 0 3px rgba(163,45,45,.1)}
.foot .favbtn{margin-left:auto}
.toast{position:fixed;bottom:42px;left:50%;transform:translateX(-50%);background:rgba(43,42,40,.93);color:#fff;padding:11px 22px;border-radius:11px;font-size:14px;z-index:200;opacity:0;transition:opacity .3s;pointer-events:none}
.favpage{position:fixed;inset:0;background:var(--bg);z-index:90;overflow-y:auto}
.favpage-inner{max-width:820px;margin:0 auto;padding:24px 20px 60px}
.favpage-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.fav-empty{color:var(--mut);text-align:center;padding:40px 0;line-height:1.9}
.fav-tabs{display:flex;gap:8px;margin-bottom:16px}
.fav-tab{padding:6px 15px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:13.5px;color:var(--mut);cursor:pointer}
.fav-tab.on{border-color:var(--red);color:var(--red);background:var(--redbg);font-weight:600}
.fav-item{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;text-decoration:none;color:inherit}
.fav-item:hover{border-color:#d8cdbb;background:#fffdf8}
.login-hint{position:absolute;top:46px;right:0;background:var(--ink);color:#fff;font-size:12.5px;padding:8px 13px;border-radius:10px;white-space:nowrap;box-shadow:0 6px 20px rgba(0,0,0,.2);z-index:55;cursor:pointer;transition:opacity .45s;animation:hintpop .3s ease}
.login-hint::before{content:"";position:absolute;top:-5px;right:26px;width:10px;height:10px;background:var(--ink);transform:rotate(45deg)}
@keyframes hintpop{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
