.promotion-qrcode-page { min-height: 100vh; background-color: #f5f5f5; padding: 16px; .user-card { background: white; border-radius: 12px; padding: 20px; margin-bottom: 16px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); display: flex; align-items: center; .user-avatar { width: 60px; height: 60px; border-radius: 50%; margin-right: 16px; } .user-info { flex: 1; .user-name { font-size: 20px; // 对应 text-xl font-weight: bold; color: #1f2937; margin-bottom: 6px; } .invite-code { font-size: 16px; // 对应 text-base color: #6b7280; background-color: #f3f4f6; padding: 6px 10px; border-radius: 6px; display: inline-block; } } } .qrcode-container { .qrcode-card { background: white; border-radius: 12px; padding: 24px; margin-bottom: 16px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); text-align: center; .qrcode-header { margin-bottom: 24px; .title { font-size: 20px; // 对应 text-xl font-weight: bold; color: #1f2937; margin-bottom: 6px; } .subtitle { font-size: 16px; // 对应 text-base color: #6b7280; } } .qrcode-wrapper { margin-bottom: 20px; .qrcode-loading { width: 200px; height: 200px; margin: 0 auto; display: flex; align-items: center; justify-content: center; background-color: #f9fafb; border-radius: 12px; .loading-text { color: #6b7280; } } .qrcode-image-container { .qrcode-placeholder { width: 200px; height: 200px; margin: 0 auto 12px; background: white; border: 2px solid #e5e7eb; border-radius: 12px; display: flex; align-items: center; justify-content: center; .qr-pattern { width: 160px; height: 160px; position: relative; .qr-corner { position: absolute; width: 30px; height: 30px; border: 3px solid #1f2937; &.top-left { top: 0; left: 0; border-right: none; border-bottom: none; } &.top-right { top: 0; right: 0; border-left: none; border-bottom: none; } &.bottom-left { bottom: 0; left: 0; border-right: none; border-top: none; } } .qr-dots { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; padding: 40px 20px; .qr-dot { width: 8px; height: 8px; background-color: #1f2937; border-radius: 1px; } } } } .qrcode-tip { font-size: 14px; // 对应 text-sm color: #9ca3af; } } } .qrcode-info { .info-item { text-align: left; padding: 12px; background-color: #f9fafb; border-radius: 8px; .info-label { font-size: 16px; // 对应 text-base color: #6b7280; margin-bottom: 4px; } .info-value { font-size: 14px; // 对应 text-sm color: #1f2937; word-break: break-all; line-height: 1.4; } } } } } .action-buttons { margin-bottom: 24px; .action-btn { width: 100%; margin-bottom: 12px; border-radius: 8px; font-size: 16px; font-weight: 500; &.primary { background: linear-gradient(135deg, #3b82f6, #1d4ed8); color: white; border: none; } &.secondary { background: white; color: #3b82f6; border: 1px solid #3b82f6; } &.tertiary { background: #f3f4f6; color: #6b7280; border: none; } } } .usage-tips { background: white; border-radius: 12px; padding: 20px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); .tips-title { font-size: 20px; // 对应 text-xl font-weight: bold; color: #1f2937; margin-bottom: 16px; } .tips-list { .tip-item { font-size: 16px; // 对应 text-base color: #6b7280; line-height: 1.6; margin-bottom: 8px; padding-left: 8px; position: relative; &:before { content: ''; position: absolute; left: 0; top: 8px; width: 4px; height: 4px; background-color: #3b82f6; border-radius: 50%; } &:last-child { margin-bottom: 0; } } } } }