.side-drawer { position: fixed; inset: 0; z-index: 100; pointer-events: none; } .side-drawer.open { pointer-events: auto; } .side-mask { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.4); opacity: 0; transition: opacity 0.24s ease; } .side-drawer.open .side-mask { opacity: 1; } .side-panel { position: absolute; top: 0; right: 0; bottom: 0; width: 640rpx; max-width: 86%; background: #fff; transform: translateX(100%); transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1); box-shadow: -8rpx 0 32rpx rgba(0, 0, 0, 0.15); display: flex; flex-direction: column; } .side-drawer.open .side-panel { transform: translateX(0); } .panel-head { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; height: 96rpx; padding: 0 32rpx; border-bottom: 1rpx solid #f0e4e4; padding-top: calc(env(safe-area-inset-top)); } .panel-title { font-size: 32rpx; font-weight: 600; color: #222; } .panel-new { font-size: 26rpx; color: #e63946; padding: 8rpx 20rpx; border: 1rpx solid #e63946; border-radius: 28rpx; background: #fff0f1; } .panel-new:active { background: #ffe5e7; } .panel-list { flex: 1; padding: 12rpx 0; box-sizing: border-box; } .panel-empty { padding: 80rpx 32rpx; text-align: center; color: #8a8a8a; font-size: 26rpx; } .sess-item { padding: 20rpx 32rpx; border-left: 6rpx solid transparent; } .sess-item:active { background: #f7f7f9; } .sess-item.active { background: #fff0f1; border-left-color: #e63946; } .sess-title { font-size: 28rpx; color: #222; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .sess-time { margin-top: 6rpx; font-size: 22rpx; color: #8a8a8a; } .panel-foot { flex: 0 0 auto; padding: 20rpx 32rpx calc(24rpx + env(safe-area-inset-bottom)); border-top: 1rpx solid #f0e4e4; background: #fafafa; } .foot-user { display: flex; align-items: center; gap: 20rpx; margin-bottom: 20rpx; } .foot-avatar { flex: 0 0 auto; width: 72rpx; height: 72rpx; border-radius: 50%; background: #e63946; color: #fff; font-size: 32rpx; font-weight: 600; display: flex; align-items: center; justify-content: center; } .foot-user-info { flex: 1; min-width: 0; } .foot-name { font-size: 28rpx; color: #222; font-weight: 500; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .foot-sub { margin-top: 4rpx; font-size: 22rpx; color: #8a8a8a; } .foot-logout { height: 72rpx; line-height: 72rpx; text-align: center; border-radius: 12rpx; background: #fff; color: #e63946; font-size: 28rpx; border: 1rpx solid #e63946; } .foot-logout:active { background: #fff0f1; }